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

时间:2013-01-30 21:53:12

标签: c# regex regex-lookarounds

我一直在努力寻找解决此问题的方法。假设有一个字符串

"hello Exclude1 4:32  test test Exclude2 5:23 hello 2:19 some more text 42:3 more text"

我正在尝试创建一个只与2:1942:3匹配的C#regx 但请忽略Exclude1 4:32Exclude2 5:23

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

3 个答案:

答案 0 :(得分:8)

您可以使用negative lookbehind忽略其他表达式前面的表达式:

(?<!Exclude1 )(?<!Exclude2 )\d+:\d+

这将与##:##Exclude1 之前不紧跟的Exclude2 匹配。

演示:Regular Expression | C# Code Sample

答案 1 :(得分:0)

 (?<!a)b for example matches b which is not preceded by a, you can
 easily adapt it to your needs.

答案 2 :(得分:0)

你有没有试过像:

(?<!Exclude\d )\d+:\d+