正则表达式各种语言通用,但不同的语言又有细微的区别。所以我们在用正则表达式的时候,一定要仔细了解当前语言中正则的规则。java中 java.util.regex包中的Pattern类说明了java语言中正则的细节。
正则表达式的应用:
判断 matches
分割 split
替换 replaceAll
获取 Pattern 与 Matcher合用
package patternDemo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class PatternDemo
{
public static void main(String[] args){
// 匹配判断 matches
String reg = "^1[34578]{1}\\d{9}$";
String phone = "13112341234";
System.out.println(phone.matches(reg));// true
// 分割 split
String abc = "a,b,c";
String[] abcArr = abc.split(",");
for(int i = 0;i<abcArr.length;i++){
System.out.println(abcArr[i]); //输出 a b c
}
// 替换 replaceAll
String s = "hello123world456";
String regex = "\\d+";
String replacement = " ";
String result = s.replaceAll(regex,replacement);
System.out.println(result); // hello world
// Pattern 和 Matcher
// 使用方法
// 1 通过Pattern对象获取matcher对象
// 2 用matcher对象的获取功能 find() start() end() group()
String findInStr = "hello #world# hello #java# hello #php#";
// 找出所有的 ## 包围的字符
String pattern = "#(\\w+)#";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(findInStr);
while(m.find()){
System.out.print(m.group() +" "+ m.group(1));
System.out.println();
}
// 匹配结果
/* #world# world
#java# java
#php# php */
}
}