【发布时间】:2017-01-21 18:18:35
【问题描述】:
仅当模式匹配并且组结束前没有特定单词时,我才尝试接受捕获组。我尝试了多种方法,但似乎都没有奏效,显然我没有理解这个概念:
https://regex101.com/r/iP2xY0/3 https://regex101.com/r/iP2xY0/4
无论我做什么,我的捕获组都会捕获一些东西,我的目标是如果拒绝词存在于模式中间,则不返回匹配项。
RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice))(?!Reject).*
- RC:* 嗨 Bob Smith
- RC:* 你好 David Jones *Notes Bla bla
- RC:* 嗨 Ted Warren *拒绝
捕获名称组应该返回:
- 鲍勃
- 大卫
- ''
所以“拒绝”表示如果发现 NameGroup Capture 后跟任何以 < 结尾的内容,则捕获它,如果在 NameGroup 和 Reject 之间出现不。
【问题讨论】:
-
regex101.com/r/iP2xY0/5 仅匹配拒绝
-
@be_good_do_good 谢谢。然而,我正在寻找的是在 String1 中匹配
Bob,在 String2 中匹配David而在 String3 中什么都没有。
标签: python regex-negation regex-lookarounds