Java正则表达式匹配AABB、ABAB格式字符
我们开发过程中,经常用到正则表达式来匹配想要的字符串,或者从一段文本中提取想要的关键字,比如爬虫应用等。正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅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 long string 转换_Java long 转成 String的实现[通俗易懂]
- java 怎样卸载一个类_Java 动态卸载类[通俗易懂]
- Java:Eclipse下载安装教程,以及Eclipse 安装汉化包的方法[通俗易懂]
- java helloworld源代码_Java Hello World源代码剖析
- java flatmap_java8 flatmap「建议收藏」
- java 生成中文字符乱码,java汉字乱码的原因与解决方法
- java 生成xml dom4j_Java生成xml——DOM4J生成
- 零基础学Java(1)初识Java程序
- 【说站】java处理字符的函数
- java实现cs架构_cs模型人物看不见
- 反编译Java_java反编译的代码可以修改么
- Java面向对象2(G~J)
- 【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
- 40个Java多线程问题总结,新手必备详解编程语言
- java.lang.ClassNotFoundException: org.apache.commons.discovery.tools.DiscoverSingleton详解编程语言
- 在Linux下搭建完美的Java开发环境(linux搭建java开发环境)
- 缓存Java使用Redis管理过期缓存技术(redisjava过期)
- 时间设置 Java操作Redis实现数据过期时间设置(redisjava过期)
- Java操作MySQL快速实现导入(javamysql导入)
- Java调用Linux库实现跨系统功能(java调用linux库)
- 合Java与Oracle联手打造崭新未来(java和oracle联)
- java解析任意层数json字符串的方法