2009-07-03 27 views

答えて

16

はい、Regexは仕事に最適です。

ような何か:あなたが欲しい

string regexPattern = string.Format(@"\b{0}\b", Regex.Escape(yourWord)); 
if (Regex.IsMatch(yourString, regexPattern)) { 
    // word found 
} 
+2

+1 Regex.Escape() – RichieHindle

+4

オペレータが一致を大文字と小文字を区別するかどうかによって、RegexOptions.IgnoreCaseも追加できます。 – LukeH

3

おそらくこのようなものです:

if (Regex.IsMatch(myString, @"\bGav\b")) { ... } 

\ bの:正規表現中のSの、単語の境界を示す空白をIEや開始/終了文字列。必要に応じて、3番目のパラメータとしてRegexOptions.IgnoreCaseをスローすることもできます。正規表現の前の@記号は必須であることに注意してください。そうでなければ、\記号の二重の意味のために誤解されます。

+0

それは間違って解釈されることはありません、パターンを別の方法で書く必要があります:@ "\ bGav \ b"は "\\ bGav \\ b"と同じです – Lucero

+0

はい、まさにです。しかし、Regexのエスケープルールはそのままでは複雑であるため、慣習的な文字列リテラル(@ "..."))が正規表現を表現するのにはるかに優れていることがわかります。 C#の構文をミックスに投げ込むだけで、特にエスケープルールがほとんど同じでない他の環境に物をペーストしたい場合は、物事がより困難になります。 –

関連する問題