2017-11-23 6 views
1

こんにちは私は検索結果を表示するための次のコードを持っています。検索結果の大文字と小文字が区別され、剃刀MVCのRegExpでRSS

@foreach (var str in (item.ContentText.Split(new char[] { '?', '<', '!', '<', '^', '>', '*', '>'}).Where(a => a.Contains((string)ViewData["searchTerm"])))) 
{ 
         @Html.Raw(Regex.Replace(str, (string)ViewData["searchTerm"], 
"<span style='background-color:rgb(245, 234, 157); color:rgb(243, 122, 122)'>" + (string)ViewData["searchTerm"] + "</span>")) 
} 
        </a> 

大文字と小文字を区別するための剃刀にreg expがありますか?

は、あなたが追加する必要がどのようなあなたに

+0

'Regex.Replace(str、(string)ViewData [" searchTerm "]、...、RegexOptions.IgnoreCase)' =>これはあなたが欲しいものですか? 'RegexOptions.IgnoreCase'を使って大文字と小文字を区別しないパターンマッチングを行うことができます。 –

答えて

2

に感謝Regex.Replace過負荷の最後の引数としてRegexOptions.IgnoreCaseです:

@foreach (var str in (item.ContentText.Split(new char[] { '?', '<', '!', '<', '^', '>', '*', '>'}).Where(a => a.Contains((string)ViewData["searchTerm"])))) 
{ 
    @Html.Raw(Regex.Replace(str, (string)ViewData["searchTerm"], 
       "<span style='background-color:rgb(245, 234, 157); color:rgb(243, 122, 122)'>" + (string)ViewData["searchTerm"] + "</span>", 
       RegexOptions.IgnoreCase)) 
} 

Regex.Replaceのデフォルト設定は、大文字と小文字の区別について重点を置いて、次のルールを(含んRegexOptions.None、あります):

  • パターンは、ECMAScriptの正規表現ではなく標準的なものとして解釈されます。

  • 正規表現パターンは、左から右の入力文字列で一致します。

  • 比較では大文字と小文字が区別されます。

  • ^$の言語要素が入力文字列の先頭と末尾に一致します。

  • .の言語要素は、\nを除くすべての文字に一致します。

  • 正規表現パターンの空白は、リテラルスペース文字として解釈されます。

  • パターンを入力文字列と比較するときは、現在のカルチャの規則が使用されます。

  • 正規表現パターンでのグループのキャプチャは、暗黙的であるだけでなく明示的です。

注:代わりに、カミソリエンジン自体のSystem.Text.RegularExpressions名前空間によって提供さすべての正規表現のオプション。

関連する問題