正则表达式的 Java语法

举报
静Yu 发表于 2021/11/19 00:38:49 2021/11/19
【摘要】 正则表达式的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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。