zzong2019 发表于 2022-2-13 17:31:06

想实现用正则表达式判断一个列表中的词语是不是满足AABB这样的叠字如何实现?

本帖最后由 zzong2019 于 2022-2-13 17:31 编辑

请教一下各位,我现在想用正则表达式去判断一组列表中的词语中有哪些是满足AABB规则的叠字词语,我写的代码如下:
string_list=['红红火火','哈哈哈哈','甜甜蜜蜜','欢欢喜喜','热热闹闹','匆匆而过','步步为营']

代码运行结果为['红红火火', '哈哈哈哈', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹'],但是出来的结果中‘’哈哈哈哈‘’实际上不是我希望出现的叠字(AAAA),如何能进一步改进排除掉这样的情况呢?

ckblt 发表于 2022-2-13 18:11:33

改成

试试,本人不太懂正则

傻眼貓咪 发表于 2022-2-13 19:54:41

(.)\1((?!\1).)\2

傻眼貓咪 发表于 2022-2-13 20:04:38

import re
string_list = ['红红火火', '哈哈哈哈', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹', '匆匆而过', '步步为营']
pattern = re.compile(r'(.)\1((?!\1).)\2')
res =
print(res)['红红火火', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹']

zzong2019 发表于 2022-2-13 20:10:38

傻眼貓咪 发表于 2022-2-13 20:04


很厉害~非常感谢!

zzong2019 发表于 2022-2-13 20:22:38

ckblt 发表于 2022-2-13 18:11
改成

试试,本人不太懂正则

你这个方法也很巧妙的呀~学习到了!
页: [1]
查看完整版本: 想实现用正则表达式判断一个列表中的词语是不是满足AABB这样的叠字如何实现?