私は、次の文字列で<b>c++</b>
でc++
を交換しようとしている:正規表現のネストされた数量詞+
"Select the projects entry and then select VC++ directories. Select show"
私はそれが
このコードを使用して"Select the projects entry and then select V<b>C++</b> directories. Select show"
イムになりたい:
string cssOld = Regex.Replace(
"Select the projects entry and then select VC++ directories. Select show",
"c++", "<b>${0}</b>", RegexOptions.IgnoreCase);
次のエラーが発生します。
System.ArgumentException: parsing "c++" - Nested quantifier +.
このコードは、他のテキスト(!C++)でも正常に動作します。 +演算子がRegexライブラリに例外をスローさせるようです。
ありがとうございました。私は+演算子に対応する必要があるだけですか、この例外を引き起こす可能性のある他の演算子(*、&、\ etc)がありますか? –
これは他の特殊文字でも確認できます:http://stackoverflow.com/questions/399078/what-special-characters-must-be-escaped-in-regular-expressionsその中には次のものがあります:(\、*、+、?、|、{、[、(、)、^、$、。、#、空白) – ionden
Regex.Escapeも同様に仕事をしました。だから私は自分のコードを変更しました: string cssOld = Regex.Replace(Regex.Escape( "プロジェクト項目を選択し、VC++ディレクトリを選択すると、 を選択してください)、Regex.Escape(" C++ ")、" $ { 0} "、RegexOptions.IgnoreCase); それは正常に動作します。皆さん、ありがとうございました。 –