为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式在没有重复连续字符的句子中查找单词

正则表达式在没有重复连续字符的句子中查找单词

狐的传说 2022-06-28 16:39:42
我正在寻找一种正则表达式模式来过滤掉句子中没有重复连续字符的单词。我尝试r'(?!.*(\w)\1{3,}).+'过正则表达式模式,但它不起作用。例如,在句子“mike is amaaazing”中,我希望正则表达式模式只选择“mike”和“is”。有任何想法吗?
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您必须在开头使用单词边界并将点替换\w为以确保您的前瞻不会超出测试的单词。


>>> s = 'mike is amaaazing'

>>> [m[1] for m in re.findall(r'\b(?!\w*?(\w)\1)(\w+)', s)]

['mike', 'is']

由于re.findall在模式中定义时仅返回捕获组,因此您可以使用列表推导来提取第二个捕获组(其中是整个单词)。


查看完整回答
反对 回复 2022-06-28
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

你可以试试这样的

\b(?:(\w)(?!\1))+\b

//img1.sycdn.imooc.com//62babe6f00016ae906440154.jpg

查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号