0

このトピックを見てきました: 正規表現を使用してテキストを括弧で囲む方法は? しかし、それはRuby上にあり、私が試したC#のアナログはわかりません

text = System.Text.RegularExpressions.Regex.Replace(text, ' '  + SpecialWord + ' ', " \"\0\" ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

しかし、それは一致した単語を挿入しませんでした。では、一致した単語を引用符で囲むにはどうすればよいでしょうか。

4

2 に答える 2

1

$後方参照の代わりに使用\します。また、特別な単語を括弧に入れてそのサブグループを参照してください。そうしないと、完全に一致した文字列が得られます。

text = System.Text.RegularExpressions.Regex.Replace(
                         text, "\\b("  + SpecialWord + ")\\b", " \"$1\" ", 
                         System.Text.RegularExpressions.RegexOptions.IgnoreCase);

説明:

  • \b単語の境界、つまりスペース、文字列の終わり、ピリオドなどです。
  • $0単語境界を含む全体の一致に$1一致しますが、最初のサブグループ、つまり括弧内の部分に一致します。
于 2011-04-12T16:02:21.393 に答える
0

\bスペースではなく、単語の境界に一致させるために使用してみてください。

$0tooの代わりに使用する必要があり\0ます。

text = Regex.Replace(text, @"\b" + SpecialWord + @"\b", @" ""$0"" ", RegexOptions.IgnoreCase);
于 2011-04-12T16:01:41.893 に答える