我正在尝试仅在模式匹配时才接受捕获组,并且在组结束之前没有特定的单词。我尝试了一些方法,似乎都没有工作,显然我没有得到这个概念:
https://regex101.com/r/iP2xY0/3 https://regex101.com/r/iP2xY0/4
无论我做什么,我的捕获组都捕获了一些东西,我的目标是如果拒绝单词存在于模式的中间而不返回匹配。
RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice))(?!Reject).*
Capture Namegrouop应该返回:
所以&#34;拒绝&#34;如果找到NameGroup Capture,后面跟<
结尾的任何东西捕获它,如果在NameGroup和&lt;之间单词Reject
似乎没有。
答案 0 :(得分:0)
我建议您在模式的开头放置负面预测。首先检查你的拒绝单词是否存在于你的字符串中,并且只有在它没有尝试匹配字符串的其余部分时才会这样:
(?!.*Rejected.*)RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice)).*