Python编程- 查找ABAC和AABB形式的成语。例如: '''绘声绘影、相亲相爱、平平安安、高高兴兴'''
查了一些资料后使用正则表达式来解决会比较容易
import re #正则表达式的库 text = '''绘声绘影、相亲相爱、平平安安、高高兴兴''' # 从左往右数每一个括号代表了一个正则表达式的子模式,\3代表的是此处匹配的项与子模式3相同,即ABAC pattern = r'(((.).\3.)|((.)\5(.)\6))' #findall函数作用是返回包含字符串中所有与给定模式匹配的项的列表 for i in re.findall(pattern,text): print(i[0])
切记切记,进行正规式匹配时,不要被代码习惯误导,一定不要加空格!!!
python pattern = r'( ( (.).\3. ) | ( (.)\5(.)\6 ) )' #error!!!