假设单词“ABC”是关键字,
并且正则表达式模式是
[^a-z^A-Z]ABC[^a-z^A-Z]
我希望以下输入返回true:
hello how are you ABC hello how are you
hello how are you.ABC0hello how are you
以下输入返回false:
"hello how are youABChello how are you"
问题是如果“ABC”出现在字符串的开头或结尾,那么正则表达式就不会拾取它。如果我不是写[^ a-z ^ A-Z]而是写[^ a-z ^ A-Z] *那么我也不会想要那种我不想要的字符串。
写这个正则表达式的正确方法是什么?
答案 0 :(得分:2)
使用negative lookbehind
和lookahead
断言:
var pattern = new Regex("(?<![a-zA-z])ABC(?![a-zA-z])");
请参阅:http://msdn.microsoft.com/en-us/library/az24scfc.aspx#grouping_constructs