2011-09-11 24 views
6

元の文字列を維持するために交換してください。タイトルがある場合:検索ワードは 'Facebookの'(ノート総額)であっても単純な正規表現は、私がこれを持って

How to make a <span style="background:yellow">Facebook</span> game 

How to make a Facebook game 

私はに交換したいと思います。基本的に、単語の元の大文字をどのように保持しますか?

別の例として、検索用語FACEBOOK、文字列Hello FaCeBoOkだけ重要なことは$+あるHello <span style="background:yellow">FaCeBoOk</span>

答えて

6

あなたはそのための$&substitutionを使用することができます。

Regex.Replace(Title, s, "<span style=\"background:yellow\">$&</span>", RegexOptions.IgnoreCase) 
1
var input = "How to make a Facebook game, do you like facebook?"; 
var searchFor = "facebook"; 
var result = Regex.Replace(
    input, 
    searchFor, 
    "<span style=\"background:yellow\">$+</span>", 
    RegexOptions.IgnoreCase); 

になっています。最後に取得したテキストが含まれます。これは "Facebookのゲームを作る方法、あなたはFacebookを好きですか?"最初のFacebookは大文字のままになり、2番目のFacebookは小文字のままになります。

私はあなただけの全体の単語を探したい場合は、あなたが作ることができることを追加します:

searchFor = @"\b" + searchFor + @"\b"; 

これはワード境界上にある文字列を探します。

1

"facebook"という単語と一致するキャプチャグループを含めるだけで、そのキャプチャグループを置換文字列の一部として含めることができます。これは、入力に現れたのとまったく同じ最終結果にそれを含めることになります。

var title = "How to make a Facebook game"; 
title = Regex.Replace(title, 
         "(facebook)", 
         "<span style=\"background:yellow\">$1</span>", 
         RegexOptions.IgnoreCase); 

See it in action

関連する問題