C#正则表达式与字符串中的某些单词不匹配

C#正则表达式与字符串中的某些单词不匹配,c#,regex,regex-lookarounds,C#,Regex,Regex Lookarounds,我已经试了几个小时来解决这个问题。假设有一根绳子 "hello Exclude1 4:32 test test Exclude2 5:23 hello 2:19 some more text 42:3 more text" 我正在尝试创建一个C#regx,它将只匹配2:19和42:3 但是忽略Exclude1 4:32和Exclude2 5:23 i、 如果前面有Exclude1或Exclude2,则e不匹配4:32或n:nn。 谢谢您可以使用忽略由其他表达式开头的表达式: (?<!E

我已经试了几个小时来解决这个问题。假设有一根绳子

"hello Exclude1 4:32  test test Exclude2 5:23 hello 2:19 some more text 42:3 more text"
我正在尝试创建一个C#regx,它将只匹配
2:19
42:3
但是忽略
Exclude1 4:32
Exclude2 5:23

i、 如果前面有Exclude1或Exclude2,则e不匹配4:32或n:nn。 谢谢

您可以使用忽略由其他表达式开头的表达式:

(?<!Exclude1 )(?<!Exclude2 )\d+:\d+
(?
这将与
排除1
排除2
之前未立即出现的
###:##
匹配


演示:|

(?您是否尝试过以下方法:


(?

您需要为应该匹配和不应该匹配的内容提供一个规则。是否要查找所有\d+:\d+前面没有Exclude\d+?@Rohit I被困在string pattern=@)(?感谢@mellamokb的开箱即用solution@mellamokb请看一看。这和排他性2 54:3的4:3匹配。虽然我把正则表达式改为(?很好的回答。如果
Exclude
表达式和数字开头之间始终只有一个空格,那么您的解决方案可能是最简单的。感谢Kode Slacker解释这个概念,感谢willOEM提供的解决方案。这非常适合作为我发布的问题的解决方案和对我知识的补充。但是ude1或Exclude2我过去常常把问题简单化,实际上它们来自一组不同的单词,我试图排除它们。
 (?<!a)b for example matches b which is not preceded by a, you can
 easily adapt it to your needs.