修复字符串结尾的否定断言

Fixing Negative Assertion for end of string

仅当模式匹配且组末尾前没有特定单词时,我才尝试接受捕获组。我尝试了多种方法,none 似乎有效,显然我没有理解这个概念:

https://regex101.com/r/iP2xY0/3 https://regex101.com/r/iP2xY0/4

无论我做什么,我的捕获组都会捕获一些东西,我的目标是如果拒绝词存在于模式中间,则 return 不匹配。

RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice))(?!Reject).*

捕获 Namegroup 应该 return:

所以 "Reject" 表示如果发现 NameGroup Capture 后跟以 < 结尾的任何内容,则捕获它,如果在 NameGroup 和 < 之间出现单词 Reject,则不要。

我建议您将消极的前瞻性放在模式的开头。这首先检查你的拒绝词是否存在于你的字符串中,只有当它不存在时它才会尝试匹配字符串的其余部分:

(?!.*Rejected.*)RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice)).*

https://regex101.com/r/iP2xY0/6