我想找到一些没有被任何数字或字母数字包围或被任何事物包围的单词。所以如果我正在寻找 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)) )
{
}
它不起作用。我做错了什么?
你本质上在寻找
(?<![a-zA-Z0-9])Foo123(?![a-zA-Z0-9])
这使用前瞻和后视来确保Foo123
之前或之后没有字母数字字符。不过,这假设是 ASCII。
以下内容匹配您不想要的字符串,因此!Regex.IsMatch()
(^([0-9a-zA-Z])+{0}.*)|(.*{0}([0-9a-zA-Z])+)