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

无法捕获所需的小组并踢出其余的小组

无法捕获所需的小组并踢出其余的小组

茅侃侃 2021-04-06 18:18:08
我写的正则表达式中的模式来捕捉只有这两456jkl,jkl456其中456jkl,jkl456,456,jkl但是当我执行脚本,这让他们的所有四个。我要去哪里错了?我的剧本:import recontent = """456jkl, 456, jkl, jkl456"""item = [item for item in re.findall('((?:jkl|456)+)',content)]print(item)我越来越:['456jkl', '456', 'jkl', 'jkl456']预期产量:['456jkl', 'jkl456']
查看完整描述

2 回答

?
qq_花开花谢_0

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

您的正则表达式当前与任何一种模式都匹配,但是您希望它与两种模式都匹配。您可以使用字符串格式来做到这一点:


a = '456'

b = 'jkl'


re.findall(rf'\b(?:{a}{b}|{b}{a})\b', content)

['456jkl', 'jkl456']

这意味着“仅匹配此序列,或其相反”。这样,(伪?)模式,例如“ 456456”和“ jkljkl”将不匹配。


(适用于python3.6 + f字符串。)


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信