我试图接受一个捕获组只有当模式匹配,没有一个特定的词之前的组结束。我尝试过很多方法,但似乎都不管用,显然我不明白这个概念:
https://regex101.com/r/iP2xY0/3https://regex101.com/r/iP2xY0/4
不管我做什么,我的捕获组捕获一些东西,我的目标是如果拒绝词存在于模式中间,则不返回匹配。你知道吗
RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice))(?!Reject).*
Capture Namegrouop应该返回:
因此,“Reject”表示如果在NameGroup Capture后面发现任何以<
结尾的内容,那么就捕获它,如果在NameGroup和<;单词Reject
之间出现,那么就不捕获它。你知道吗
我建议你把消极的眼光放在模式的开头。这将首先检查拒绝字是否存在于字符串中,并且仅当拒绝字不存在时,才会尝试匹配字符串的其余部分:
(?!.*Rejected.*)RC:\*.*?(?P<Capture>(Bob|David|Ted|Alice)).*
https://regex101.com/r/iP2xY0/6
相关问题 更多 >
编程相关推荐