0

数字や英数字で囲まれていない、または何も囲まれていない単語を見つけたいと思います。したがって、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)) )
{   
}

うまくいきません。私は何を間違っていますか?

4

2 に答える 2

3

あなたは本質的に探しています

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

これは、先読みと後読みを使用して、前後に英数字がないことを確認しFoo123ます。ただし、これはASCIIを想定しています。

于 2012-10-16T13:41:33.057 に答える
0

以下は、不要な文字列に一致します。!Regex.IsMatch()

(^([0-9a-zA-Z])+{0}.*)|(.*{0}([0-9a-zA-Z])+)
于 2012-10-16T14:32:19.397 に答える