Java正则表达式匹配aabb、abab格式字符

createh51个月前 (02-01)技术教程7

我们开发过程中,经常用到正则表达式来匹配想要的字符串,或者从一段文本中提取想要的关键字,比如爬虫应用等。正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅java里面可以用,其他的语言也一样适用。

1. 正则表达式基本字符

2. Java正则常用类Pattern类与Matcher类

Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式:
Pattren p = Pattren.compile(“\d+”);
Matcher不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例。
Matcher m=p.matcher(“4352”);
m.matches();

3. 匹配aabb、abab格式字符串

看到aabb、abab这类格式的字符串会让人想起学过的成语,比如:急急忙忙,坑坑洼洼,风风火火,彼此彼此,动次动次,哇凉哇凉。
那么我们就来通过正则表达式来匹配这一类的字符串。

//匹配aabb类型字符串Pattern?p?=?Pattern.compile("^(.)\\1(.)\\2$");Matcher?m=p.matcher("急急忙忙");System.out.println("匹配aabb类型字符串:急急忙忙?"+?m.matches());//匹配abab类型字符串p?=?Pattern.compile("^(.)(.)\\1\\2$");m=p.matcher("彼此彼此");System.out.println("匹配abab类型字符串:彼此彼此?"+?m.matches());

解释一下,首先“^”和“$”大家都比较熟悉,表示开头和结尾。
那么“(.)”代表什么含义呢?“.”表示匹配任意字符,“(.)”表示匹配任意字符的一个分组,如果出现多个括号,就有多个分组,“\1”表示引用第一个分组,“\2”引用第二个分组,依次类推。所以,“^(.)\1(.)\2$” 这个表达式表示的意思就是,第一个字符出现后,在第二个位置又被引用,也就是第一和第二位置的字符一样,同样,“(.)\2” 就是第二个分组的字符也被再引用一次,这样就能匹配"aabb"格式的字符串了。

接下来,如果要匹配"abac"这种类型的字符串呢,比如:“相亲相爱,绘声绘色,不吐不快” 这一类型的成语,与上面类似,实现代码如下:

//匹配abac类型字符串
????????p?=?Pattern.compile("^(.).\\1.$");
????????m=p.matcher("相亲相爱");
????????System.out.println("匹配abac类型字符串:相亲相爱?"+?m.matches());

是不是很简单,希望大家自己多练习,这样就可以轻松掌握这一类正则表达式的匹配方法了。

更多技术资源、软件开发工具,欢迎访问【昂焱数据】,这里一定有惊喜等着你!


相关文章

Java中如何使用正则技术提取html中的任意内容

在Java中,可以使用正则表达式来提取HTML中的任意内容。以下是一个示例代码,演示如何使用正则表达式从HTML中提取文本:import java.util.regex.Matcher; impor...

mysql的截取函数用法详解(mysql查询结果截取)

substring()函数测试数据准备:用法:以下语法是mysql自动提示的1:substirng(str,pos):从指定位置开始截取一直到数据完成str:需要截取的字段的pos:开始截取的位置。从...

【Java深度干货】如何高效构造字符串(String)?

字符串在 Java 中是不可变的,无论构造,还是截取,得到的总是一个新字符串。下面看一下构造一个字符串(String)的源码:private final char value[]; public St...

Java实现MD5加盐加密算法(java中md5加密)

MD5加密MD5是常用的加密算法,在用户注册时通过算法加密的密码存入数据库,保护用户密码,数据库管理员不能直接看见密码,即使用户数据库被盗,没有存储明文的密码对用户来说也多了一层安全保障。用户登录时,...

二、Java字符串/时间处理(java字符串时间格式转换)

二、Java字符串/时间处理1、 文章背景工作已有五年之久,回望过去,没有在一线城市快节奏下学习成长,只能自己不断在工作中学习进步,最近一直想写写属于自己的文章,记录学习的内容和知识点,当做一次成长。...

教大家简单的 Shell 脚本入门操作

Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现工具推荐Shel...