图案没有数字或字母数字包围

时间:2012-10-16 13:38:45

标签: c# regex

我想找到一些没有被任何数字或字母数字所包围或被任何东西包围的词。 所以,如果我正在寻找Foo123我想要这个结果

="Foo123"; =>TRUE
barFoo123; =>FALSE
Foo123 =>TRUE
BarBar123Foo123Bar; =>FALSE
;Foo123 =>TRUE

我刚刚建立了这个表达式:

(^[^0-9a-zA-Z]?)WORDTOFIND([^0-9a-zA-Z]?$)

我很确定我的方式是正确的,但是当我像这样使用它时:

if (Regex.IsMatch(line, string.Format(@"(^[^0-9a-zA-Z]?){0}([^0-9a-zA-Z]?$)",snCode)) )
{   
}

它不起作用。我究竟做错了什么?

2 个答案:

答案 0 :(得分:3)

你基本上在寻找

 (?<![a-zA-Z0-9])Foo123(?![a-zA-Z0-9])

这使用前瞻和后视来确保Foo123之前或之后没有字母数字字符。但这假定为ASCII。

答案 1 :(得分:0)

以下内容与您不想要的字符串相匹配,!Regex.IsMatch()

(^([0-9a-zA-Z])+{0}.*)|(.*{0}([0-9a-zA-Z])+)