如何使用正则表达式忽略在其前面有某个字符串的字符串?

时间:2012-07-16 04:21:35

标签: c# regex

我已经开启了不区分大小写......

我想在abcwatch?v=xxabcxx以外的任何地方匹配tumblr_asdfabcasdf

但是如果我对(watch\?v=[0-9a-zA-Z]){0}abc使用watch?v=xxabcxx,它会匹配,大概是因为引擎失败直到它检查abcxxx这很好。

1 个答案:

答案 0 :(得分:1)

在正则表达式中,称为负向后方(也在前方,取决于您需要查看的方向)。查看“ Positive and Negative Lookahead ”的教程。

您可能还需要查看“ Regular expression negative lookahead ”的问题和答案。

例如,看看(watch\?v=.*)(?<!xx)abc,只有当前面的字母与{{1}不匹配时,才能将(?<xx)abc部分视为 abc匹配} ,其中xx是在应用(?a)b之前放置条件a的格式。此外,符号b表示看后面,感叹号<是否定条件。我使用了一个通用的正则表达式,但你可以得到这个想法。