点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~
这篇文章通过实现5个小功能,来讲述在Java中如何使用正则。
Java中如何使用正则
Java中正则相关类位于java.util.regex包下,主要使用2个类,如下:
Pattern类:
Pattern是正则表达式regex的编译表示形式
Matcher类:
通过解释Pattern对输入的字符串input执行匹配操作的引擎
注意:在Java代码中转义字符“\”要写成“\\”才表示一个“\”。
比如regex=\d,在Java代码中应该写成“\\d”。
下面我们通过几段Java代码来感受一下,除了功能1的代码是完整代码外,其余功能代码,我只给出main()方法。
功能1:判断给定的字符串是否与给定的正则表达式完全匹配
说明:matches()方法,尝试将整个区域与模式匹配。
regex=\w+表示匹配至少一个字母或者数字或下划线[a-zA-z0-9_],所以字符串“HelloWord”与这个正则完全匹配。
功能2:判断给定的字符串是否包含至少一个数字
说明:find()方法,尝试查找与该模式匹配的输入序列的下一个子序列,如果存在多个子串,find()方法能找到所有符合条件的子串。
regex=\d+表示匹配至少一个数字,所以字符串“HelloWord,666!”可以匹配这个正则。
4、功能3:从给定的字符串里找出所有的数字子串
说明:group()方法,返回在以前匹配操作期间由给定组捕获的输入子序列。即通过find()方法找到的符合条件的子串可以通过group()方法获取。
regex=\d+表示匹配至少一个数字,字符串“HelloWord,666,888!”可以匹配这个正则2次,通过group()方法获取到了匹配的数字666与888。
功能4:把给定的字符串里的所有数字替换为星号“*”
说明:replaceAll()方法,替换模式与给定字符串相匹配的输入序列的每个子序列。即通过replaceAll()方法把符合条件的子串替换成replaceAll()方法中的参数。
regex=\d+表示匹配至少一个数字,字符串“Beijing 666,China 888!”可以匹配这个正则2次,通过replaceAll(“*”)方法把匹配的数字666与888替换成了***,因此替换后的字符串为“Beijing ***,China ***!”。
功能5:把给定的字符串通过正则表达式进行拆分
说明:String的split()方法,根据给定正则表达式的匹配拆分此字符串。
字符串“Beijing010shanghai021tianjin022!!!”可以匹配3次regex=\d+,通过split()方法按数字进行拆分,拆分出4组内容,分别是“Beijing”, “shanghai”, “tianjin”, “!!!”。
通过以上5个功能代码段,对Java开发中如何使用正则表达式应该有了一个较为清晰的认识。