规则字符在java.util.regex.Pattern类中
常用组成规则
字符
字符类
预定义字符类
边界匹配器
数量词
字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
如果我就想表示这个点. 用\.
\d 数字:[0-9]
\D 非数字: [^0-9]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
预定义字符类
^ 行的开头
$ 行的结尾
\b 单词边界:就是不是单词字符的地方
边界匹配器
^ 行的开头 $ 行的结尾 \b 单词边界:就是不是单词字符的地方
数量词
X?X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
正则表达式的应用
判断功能
public boolean matches(String regex)
//接收字符串
String telephoneNumber = sc.nextLine();
//定义规则
String regex = "1[3-9][0-9]{9}";
//调用方法
boolean boo = telephoneNumber.matches(regex);
分割功能
public String[] split(String regex,int limit),limit为模式应用次数
String age = "18-22";
//定义规则
String regex = "-";
//调用方法
String[] strs = age.split(regex);
//遍历
for(int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
替换功能
public String replaceAll(String regex,String replacement)
//定义字符串
String s = "longgeshishuaige521longgezhendeshishuaige520";
//我要把所有数字删除,定义规则
String regex = "\\d+";
String ss = "";
//调用方法
String str = s.replaceAll(regex, ss);
获取功能
Pattern和Matcher类的使用,模式和匹配器的基本的使用
//查找匹配
//把正则表达式编译成模式对象
Pattern p = Pattern.compile("ab");
//通过模式对象得到匹配器对象,参数是需要被匹配的字符串
Matcher m = p.matcher("aaaaab");
//调用的是匹配其对象的功能
boolean b = m.matches();
System.out.println(b);
//查找
String s = "bu shuai long geshi ge";
//定义规则
String regex = "\\b\\w{2}\\b";
//把规则编译成模式对象
Pattern p = Pattern.compile(regex);
//通过模式对象得到匹配其对象
Matcher m = p.matcher(s);
while(m.find()) {
System.out.println(m.group());
}