[图解]Python用正则表达式匹配ABAC和AABB的词语 |
您所在的位置:网站首页 › aba一的词语 › [图解]Python用正则表达式匹配ABAC和AABB的词语 |
#这几天看到有网友在问这个问题,我翻找了下资料,很多讲的不是特别的明白,所以我稍微改了下,希望能帮到有需要的人from re import findall
text = '''行尸走肉、金蝉脱壳、百里挑一、金玉满堂、
背水一战、霸王别姬、天上人间、不吐不快、海阔天空、
情非得已、满腹经纶、兵临城下、春暖花开、插翅难逃、
黄道吉日、天下无双、偷天换日、两小无猜、卧虎藏龙、
珠光宝气、簪缨世族、花花公子、绘声绘影、国色天香、
相亲相爱、八仙过海、金玉良缘、掌上明珠、皆大欢喜、
浩浩荡荡、平平安安、秀秀气气、斯斯文文、高高兴兴'''
print("全部词语: ", text)
pattern = r'(((.).\3.)|((.)\5(.)\6))'
print("匹配ABAC和AABB的词语:", list(i[0] for i in findall(pattern, text)))
#得到结果如下:全部词语: 行尸走肉、金蝉脱壳、百里挑一、金玉满堂、
背水一战、霸王别姬、天上人间、不吐不快、海阔天空、
情非得已、满腹经纶、兵临城下、春暖花开、插翅难逃、
黄道吉日、天下无双、偷天换日、两小无猜、卧虎藏龙、
珠光宝气、簪缨世族、花花公子、绘声绘影、国色天香、
相亲相爱、八仙过海、金玉良缘、掌上明珠、皆大欢喜、
浩浩荡荡、平平安安、秀秀气气、斯斯文文、高高兴兴
匹配ABAC和AABB的词语: ['不吐不快', '绘声绘影', '相亲相爱', '浩浩荡荡', '平平安安', '秀秀气气', '斯斯文文', '高高兴兴']
详解见下图,不同子项的组成,使“|”前面形成了ABAC,后面形成了ABAB。而“|”为“或”的意思,所以达到了筛选ABAC或AABB的词语的效果。(PS:其实“|”左边的B和C是“.”,所以也可能为AAAC,ABAA,但是只有的成语很少吧)
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |