目录
作用:
1.校验字符串是否符合规则
2.在一段文本中查找满足要求的内容
规则使用:
注意:
-
反斜杠字符( '\' )用于引入如上表中定义的转义结构,以及引用否则将被解释为未转义结构的字符。 因此,表达式\\匹配单个反斜杠, \{匹配左括号。
字符类:
预定义字符:
数量词:
小结:
代码例子:
1.单个字符串匹配:匹配电话号码
package patterndemo;
public class demo1 {
public static void main(String[] args) {
String phone="17394941549";
System.out.println(phone.matches("1[3-9]\\d{9}"));
}
}
2.文本匹配:利用文本匹配器去从头匹配。
Pattern库:表示正则表达式 Matcher库:文本匹配器,按照正则表达式的规则去读取字符串,从头开始读取
package patterndemo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//Pattern:表示正则表达式
//Matcher:文本匹配器,按照正则表达式的规则去读取字符串,从头开始读取
public class demo2 {
public static void main(String[] args) {
String s="北京时间10月25日,鹈鹕官方今日宣布,球队锋线布兰登-英格拉姆触发了联盟的脑震荡保护协议。" +
"昨日鹈鹕与爵士的比赛,英格拉姆不慎被队友纳吉-马绍尔误伤引发脑震荡,随即退出比赛。是役鹈鹕最终在家门口以1分之差憾负爵士," +
"英格拉姆全场仅出战11分49秒,5投4中得到10分。" +
"赛季前三场,英格拉姆场均能为鹈鹕贡献22.0分5.7篮板4.0助攻,投篮命中率高达57.9%。";
Pattern p=Pattern.compile("(英格拉姆)|(鹈鹕)");//获取正则表达式的对象
Matcher m= p.matcher(s);//获取文本匹配器的对象
while (m.find()){
//文本匹配器从头开始读取,寻找符合规则的字符串,如果有,则返回TRUE,并在底层记录子串的索引,否则FALSE。
System.out.println(m.group());
//方法底层会根据find方法记录的索引进行字符串的截取
}
}
}
结果如下:
鹈鹕
英格拉姆
鹈鹕
英格拉姆
鹈鹕
英格拉姆
英格拉姆
鹈鹕