3

Regex.Replaceの最初のグループを使用するにはどうすればよいですか?ドキュメントに書かれているように
使ってみました。また、グループ化を使用するかどうかは関係ありません...$1?:

string text = "<font color="#aa66bb">farbig</font>"     

/// this does not work
Regex.Replace(text, "&lt;font color=&quot;#(?:[\\d\\w]{6})&quot;&gt;", "<font color=\"#$1\">");
// => "<font color=\"#$1\">farbig&lt;/font&gt;"

// this works fine though  
Regex.Match(text, "&lt;font color=&quot;#([\\d\\w]{6})&quot;&gt;").Groups[1];
// => aa66bb

それで、私はここで何を間違っているのですか?

4

2 に答える 2

1

ここで非キャプチャ グループを使用しているだけでしょうか?

Regex.Replace(this.Text, "&lt;font color=&quot;#(?:[\\d\\w]{6})&quot;&gt;", "<font color=\"#$1\">");

それは:

(?:[\\d\\w]{6})

それ以外の

([\\d\\w]{6})

@ btw を使用して、すべての特殊文字をエスケープできます。@"(?:[\d\w]{6})"

また、試してみましたか

"<font color=\"#" + $1 + "\">"

そうでなければ、c# は通常の文字列値から $1 を認識しないと思います

于 2012-04-27T12:53:43.290 に答える
0

これはあなたが求めている質問に対する答えではありませんが、あなたの例で試みていることを行うには、ここHtmlDecodeで説明されているように使用して、問題全体を回避できます。

于 2012-04-27T12:54:24.843 に答える