2

ちょっと私は現在、htmlを文字列に置き換えようとしています。Ie <strong>text</strong>needs to be <b>text</b> etc. (bタグが古いと見なされていることに気付きました)

これを修正するために正規表現を使用すべきではないことは承知していますが、現在これが唯一の選択肢です

私のコード:

//replace strong
text = Regex.Replace(text, "<strong>.*?</strong>", "<b>$1</b>");

//replace em
text = Regex.Replace(text, "<em>.*?</em>", "<i>$1</i>");

ここでの問題は、正規表現がタグ置き換え、テキストを に設定すること$1です。これを回避する方法は?(私はC#にいます。)

4

3 に答える 3

5

は、一致の最初のキャプチャ$1値を使用します。しかし、一致でキャプチャ グループを指定していないため、置換するものはありません。$1

(…)正規表現でキャプチャするために使用します。

text = Regex.Replace(text, "<strong>(.*?)</strong>", "<b>$1</b>");
于 2013-01-28T11:54:44.983 に答える
2

次の回答は単なる回避策であることに注意してください。適切な正規表現を作成することをお勧めします。

var text = "<strong>asfdweqwe121</strong><em>test</em>";

text = text.Replace("<strong>", "<b>");
text = text.Replace("</strong>", "</b>");
text = text.Replace("<em>", "<i>");
text = text.Replace("</em>", "</i>");
于 2013-01-28T11:58:06.293 に答える