正则表达式的 Java语法
正则表达式的Java语法
正则表达式的模式串直接匹配方式
正则表达式的模式串预编译后匹配方式
正则表达式的预编译及匹配方式的语法
正则表达式的模式串直接匹配方式
下面的这个例子用正则表达式判断单词中是否含有i字母:
import java.util.regex.*;
public class TestRegexDirect {
public static void main(String[] args){
String word = "university";
String patternString = "\\w*i\\w*";
boolean flag = Pattern.matches(patternString, word);
System.out.println(flag);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这种匹配方式适用于单次匹配,其效率较低。
原因是:静态方法Pattern.matches( , )每次都要对
其中的参数patternString做一次处理,方可匹配。
正则表达式的模式串预编译后匹配方式
下面的这个例同样用正则表达式判断单词中是否含有i字母:
import java.util.regex.*;
public class TestRegexCompile {
public static void main(String[] args){
String[] words = {"your", "Eglish", "university"};
String patternString = "\\w*i\\w*";
Pattern pattern = Pattern.compile(patternString);
for (String word : words){
Matcher matcher = pattern.matcher(word);
boolean flag = matcher.matches();
System.out.println(flag);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
这个匹配的效率就高得多。
这是因为方法Pattern.compile()方法对patternString
做了预编译,这使得后期的匹配效率更高。
在使用模式串多次匹配的情况下,要使用这个方法。
正则表达式的预编译及匹配方式的语法
下面是上述例子中三个重要语法:
• Pattern pattern = Pattern.compile(patternString);
对模式串patternString做了预编译,结果存放在
pattern中。
• Matcher matcher = pattern.matcher(word);
pattern 和 word 通过matcher()方法,形成一个
matcher匹配器
• boolean flag = matcher.matches();
Matcher对象的无参方法 matches() 在预编译结果
的基础上实现了快速的匹配
文章来源: blog.csdn.net,作者:静Yu,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_46285118/article/details/113504303
- 点赞
- 收藏
- 关注作者
评论(0)