分别使用正则表达式的子模式编号和子模式命名两种方法匹配ABAC、AABB、ABAB式成语
text = '''行尸走肉、金蝉脱壳、百里挑一、金玉满堂、背水一战、霸王别姬、天上人间、不吐不快、海阔天空、情非得已、满腹经纶、兵临城下、春暖花开、插翅难逃、黄道吉日、天下无双、偷天换日、两小无猜、卧虎藏龙、珠光宝气、簪缨世族、花花公子、绘声绘影、国色天香、相亲相爱、八仙过海、金玉良缘、掌上明珠、皆大欢喜、浩浩荡荡、平平安安、秀秀气气、斯斯文文、高兴高兴'''
使用子模式编号的方法编写程序,
(1)同时查找text中ABAC和AABB形式的词语,
(2)分别查找text中ABAC、AABB和ABAB形式的词语,
from re import findall
text = '''行尸走肉、金蝉脱壳、百里挑一、金玉满堂、
背水一战、霸王别姬、天上人间、不吐不快、海阔天空、
情非得已、满腹经纶、兵临城下、春暖花开、插翅难逃、
黄道吉日、天下无双、偷天换日、两小无猜、卧虎藏龙、
珠光宝气、簪缨世族、花花公子、绘声绘影、国色天香、
相亲相爱、八仙过海、金玉良缘、掌上明珠、皆大欢喜、
浩浩荡荡、平平安安、秀秀气气、斯斯文文、高兴高兴'''
# 子模式编号——同时匹配
print("-子模式编号--同时匹配ABAC和AABB-")
pattern_1 = r'(((.).\3.)|((.)\5(.)\6))' # 正则表达式前加r是为了不转义反斜杠后的字符,\3代表此处重复出现子模式3
for item in findall(pattern_1, text):print(item[0])
# 子模式命名——同时匹配
print("-子模式命名--同时匹配ABAC和AABB-")
pattern_2 = r'(((?P<f>.)(?P=f)(?P<g>.)(?P=g))|((?P<h>.)(?P<i>.)(?P=h)(?P<j>.)))' # AABB式
for item in findall(pattern_2, text):print(item[0])
# 子模式编号——分别匹配
print("-子模式编号--分别匹配ABAC-")
pattern_3 = r'((.).\2.)' # ABAC式
for item in findall(pattern_3, text):print(item[0])
print("-子模式编号--分别匹配AABB-")
pattern_4 = r'((.)\2(.)\3)' # AABB式
for item in findall(pattern_4, text):print(item[0])
print("-子模式编号--分别匹配ABAB-")
pattern_5 = r'((.)(.)\2\3)' # ABAB式
for item in findall(pattern_5, text):print(item[0])
# 子模式命名——分别匹配
print("-子模式命名--分别匹配ABAC-")
pattern_6 = r'((?P<f>.)(?P<g>.)(?P=f)(?P<h>.))' # ABAC式
for item in findall(pattern_6, text):print(item[0])
print("-子模式命名--分别匹配AABB-")
pattern_7 = r'((?P<f>.)(?P=f)(?P<g>.)(?P=g))' # AABB式
for item in findall(pattern_7, text):print(item[0])
print("-子模式命名--分别匹配ABAB-")
pattern_8 = r'((?P<f>.)(?P<g>.)(?P=f)(?P=g))' # ABAB式
for item in findall(pattern_8, text):print(item[0])
运行结果如下:
分别使用正则表达式的子模式编号和子模式命名两种方法匹配ABAC、AABB、ABAB式成语相关推荐
- arcgis用python字段自动编号,arcgis中字段自动编号的两种方法
<arcgis中字段自动编号的两种方法>由会员分享,可在线阅读,更多相关<arcgis中字段自动编号的两种方法(4页珍藏版)>请在人人文库网上搜索. 1.精选文档关于ARCGI ...
- Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
Java去除掉HTML里面所有标签,主要就两种,要么用开源的jar处理,要么就自己写正则表达式.自己写的话,可能处理不全一些自定义的标签.企业应用基本都是能找开源就找开源,实在不行才自己写-- 1,开 ...
- wps如何取消自动编号?试试这3种方法
你还在使用最原始的取消自动编号的方法吗?有更好的方法等着你来使用,那么,wps如何取消自动编号?试试小编总结的这3种方法,估计就不想用最原始的取消自动编号的方法了,可以快速节省时间,节省步骤! 方法1 ...
- python中分割字符串两种方法正则分组别名_Python 正则表达式(分组)
正则表达式分组 分组就是用一对圆括号"()"括起来的正则表达式,匹配出的内容就表示一个分组.从正则表达式的左边开始看,看到的第一个左括号"("表示第一个分组,第 ...
- python中分割字符串两种方法正则分组别名,如何在python中使用正则表达式模块将文本字符串分割成单词?...
Here's what I'm working with- string1 = "Dog,cat,mouse,bird. Human." def string_count(text ...
- latex插图编号_Latex插图的几种方法
在LaTeX文档中插入图片都是通过使用一些latex图形处理宏命令来实现的, 有很多宏命令都支持在在LaTeX文档中插入eps格式的图形文件, 主要有: (1)用includegraphics宏命令( ...
- 正则表达式中的常用模式字符串及两种匹配模式
常用模式字符串 . 匹配除了换行符之外的任意字符 * 0.1.多次 匹配 ? 0.1 匹配 () 用括号指定需要提取的信息 两种匹配模式 贪婪模式 尽可能多的匹配 非贪婪模式 尽可能少 ...
- python修改字体无效_python正则表达式修复网站文章字体不统一的解决方法
网站的大框架下有定义的字体,包括字体大小和颜色等,用户发布文章的时候可能是从其他网站复制过来的文本,复制的过程也保留了字体描述信息.当文章在页面上显示的时候,默认先会使用文章中定义的字体,如果文章中字 ...
- php正则邮箱验证,两种PHP用户注册邮箱验证正则表达式方法
一般我们在WEB端新注册或者登陆账户的时候,对于字段的验证不仅仅是需要验证其是否为空或者长度,有些特殊的字段,比如EMAIL邮箱我们需要验证是不是邮箱的格式,比如是都带有@符号等.刚才在练习PHP程序 ...
最新文章
- Nature:植物叶际微生物组稳态维持机制
- 微软北大联合提出换脸 AI 和脸部伪造检测器,演绎现实版「矛与盾」?
- linux 删除乱码文件
- MultiResUNet笔记
- System.InvalidOperationException:“线程间操作无效: 从不是创建控件“txtPortName02”的线程访问它。”...
- 压控元器件和流控元器件
- 线程堆栈大小 pthread_attr_setstacksize 的使用【原创】
- JavaWeb — 解决请求前与请求后中文乱码的问题
- xml文件导入wps_电脑中将WPS文档保存为XML格式的方法
- Python3 百度拾取坐标系统API的调用
- java学籍管理系统部分代码_java学籍管理系统源代码
- Ubuntu20.04设置静态IP
- 客户机键盘某些键失灵
- Camunda流程引擎 Modeler (二)
- 我是怎么从安卓到php再成为前端开发工程师的
- sqoop迁移oracle数据到TDH
- 怎么看网站有没有被收录(百度360搜狗等搜索引擎通用)
- while与do while的用法及区别。
- 第一次工业革命(二)——蒸汽机与工厂的出现
- 【k8s】volum “istio-token“ 没有挂上