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式成语相关推荐

  1. arcgis用python字段自动编号,arcgis中字段自动编号的两种方法

    <arcgis中字段自动编号的两种方法>由会员分享,可在线阅读,更多相关<arcgis中字段自动编号的两种方法(4页珍藏版)>请在人人文库网上搜索. 1.精选文档关于ARCGI ...

  2. Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式

    Java去除掉HTML里面所有标签,主要就两种,要么用开源的jar处理,要么就自己写正则表达式.自己写的话,可能处理不全一些自定义的标签.企业应用基本都是能找开源就找开源,实在不行才自己写-- 1,开 ...

  3. wps如何取消自动编号?试试这3种方法

    你还在使用最原始的取消自动编号的方法吗?有更好的方法等着你来使用,那么,wps如何取消自动编号?试试小编总结的这3种方法,估计就不想用最原始的取消自动编号的方法了,可以快速节省时间,节省步骤! 方法1 ...

  4. python中分割字符串两种方法正则分组别名_Python 正则表达式(分组)

    正则表达式分组 分组就是用一对圆括号"()"括起来的正则表达式,匹配出的内容就表示一个分组.从正则表达式的左边开始看,看到的第一个左括号"("表示第一个分组,第 ...

  5. python中分割字符串两种方法正则分组别名,如何在python中使用正则表达式模块将文本字符串分割成单词?...

    Here's what I'm working with- string1 = "Dog,cat,mouse,bird. Human." def string_count(text ...

  6. latex插图编号_Latex插图的几种方法

    在LaTeX文档中插入图片都是通过使用一些latex图形处理宏命令来实现的, 有很多宏命令都支持在在LaTeX文档中插入eps格式的图形文件, 主要有: (1)用includegraphics宏命令( ...

  7. 正则表达式中的常用模式字符串及两种匹配模式

    常用模式字符串 . 匹配除了换行符之外的任意字符 * 0.1.多次  匹配 ?  0.1   匹配    () 用括号指定需要提取的信息 两种匹配模式  贪婪模式 尽可能多的匹配 非贪婪模式 尽可能少 ...

  8. python修改字体无效_python正则表达式修复网站文章字体不统一的解决方法

    网站的大框架下有定义的字体,包括字体大小和颜色等,用户发布文章的时候可能是从其他网站复制过来的文本,复制的过程也保留了字体描述信息.当文章在页面上显示的时候,默认先会使用文章中定义的字体,如果文章中字 ...

  9. php正则邮箱验证,两种PHP用户注册邮箱验证正则表达式方法

    一般我们在WEB端新注册或者登陆账户的时候,对于字段的验证不仅仅是需要验证其是否为空或者长度,有些特殊的字段,比如EMAIL邮箱我们需要验证是不是邮箱的格式,比如是都带有@符号等.刚才在练习PHP程序 ...

最新文章

  1. Nature:植物叶际微生物组稳态维持机制
  2. 微软北大联合提出换脸 AI 和脸部伪造检测器,演绎现实版「矛与盾」?
  3. linux 删除乱码文件
  4. MultiResUNet笔记
  5. System.InvalidOperationException:“线程间操作无效: 从不是创建控件“txtPortName02”的线程访问它。”...
  6. 压控元器件和流控元器件
  7. 线程堆栈大小 pthread_attr_setstacksize 的使用【原创】
  8. JavaWeb — 解决请求前与请求后中文乱码的问题
  9. xml文件导入wps_电脑中将WPS文档保存为XML格式的方法
  10. Python3 百度拾取坐标系统API的调用
  11. java学籍管理系统部分代码_java学籍管理系统源代码
  12. Ubuntu20.04设置静态IP
  13. 客户机键盘某些键失灵
  14. Camunda流程引擎 Modeler (二)
  15. 我是怎么从安卓到php再成为前端开发工程师的
  16. sqoop迁移oracle数据到TDH
  17. 怎么看网站有没有被收录(百度360搜狗等搜索引擎通用)
  18. while与do while的用法及区别。
  19. 第一次工业革命(二)——蒸汽机与工厂的出现
  20. 【k8s】volum “istio-token“ 没有挂上

热门文章

  1. 航空气象:气压与高度观测
  2. 模式识别研究生:三维点云从零开始学习
  3. ubuntu18.04安装与更新NVIDIA驱动
  4. lio linux工具,Linux中三种SCSI target的介绍之LIO
  5. 3dsmax修改对象的旋转中心的位置
  6. php excel 进度,在php中生成Excel文件时显示进度条
  7. 2021抖音数据报告
  8. NXP i.MX 8M Mini处理器
  9. 考研英语复习五大计划表
  10. 关于background背景和img图片