|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zzong2019 于 2022-2-13 17:31 编辑
请教一下各位,我现在想用正则表达式去判断一组列表中的词语中有哪些是满足AABB规则的叠字词语,我写的代码如下:
- string_list=['红红火火','哈哈哈哈','甜甜蜜蜜','欢欢喜喜','热热闹闹','匆匆而过','步步为营']
- [string for string in string_list if re.search('(.)\\1(.)\\2',string)]
复制代码
代码运行结果为['红红火火', '哈哈哈哈', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹'],但是出来的结果中‘’哈哈哈哈‘’实际上不是我希望出现的叠字(AAAA),如何能进一步改进排除掉这样的情况呢?
- import re
- string_list = ['红红火火', '哈哈哈哈', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹', '匆匆而过', '步步为营']
- pattern = re.compile(r'(.)\1((?!\1).)\2')
- res = [string for string in string_list if pattern.search(string)]
- print(res)
复制代码- ['红红火火', '甜甜蜜蜜', '欢欢喜喜', '热热闹闹']
复制代码
|
|