如何编写执行以下操作的正则表达式?

时间:2012-11-11 03:38:27

标签: c# regex

假设单词“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] *那么我也不会想要那种我不想要的字符串。

写这个正则表达式的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用negative lookbehindlookahead断言:

var pattern = new Regex("(?<![a-zA-z])ABC(?![a-zA-z])");

请参阅:http://msdn.microsoft.com/en-us/library/az24scfc.aspx#grouping_constructs