当前位置: 首页 > 后端技术 > Java

Java正则表达式匹配AABB、ABAB格式字符

时间:2023-04-01 21:49:34 Java

我们在开发过程中经常会用到正则表达式来匹配想要的字符串,或者从一段文本中提取想要的关键词,比如爬虫应用。正则表达式是一组用于字符串提取的规则。我们在正则表达式中用特定的语法表达这条规则,以匹配满足这条规则的字符串。正则表达式是通用的,不仅在java中,在其他语言中也是如此。一、正则表达式的基本特征二、Java正则常用类Pattern类和Matcher类Pattern类用来创建正则表达式,也可以说是创建匹配模式:Pattrenp=Pattren.compile("\d+");Matcher不能随意创建,只能通过Pattern.matcher(CharSequenceinput)方法获取该类的实例。匹配器m=p.matcher("4352");m.匹配();3、匹配aabb和abab格式字符串看到aabb和abab格式字符串让人想起学过的成语,如:urgentHurrying,potholes,turmoil,eachother,movingagainstagain,coolandcool。那我们就用正则表达式来匹配这种类型的字符串吧。//匹配aabb类型字符串Patternp=Pattern.compile("^(.)\\1(.)\\2$");Matcherm=p.matcher("Hurryup");System.out.println("匹配aabb类型字符串:hurry"+m.matches());//匹配aabb类型字符串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());是不是很简单,希望大家多多练习,让大家轻松掌握这类正则表达式的匹配方法。更多技术资源和软件开发工具,欢迎关注【【昂研数据】】,这里一定有惊喜等着你!