0

これを行うには、boost::regex_replace(replacement_text, regex, new_text) 関数を使用しています...

replacement_text = "{replace_me}"

regex = "(\{([^\}]*[^\s]*)\})"

new_text = "$$$"

「$」を含まないすべての new_text について、これはうまく機能し、new_text は replacement_text を完全に置き換えます。ただし、記号「$$$」を使用すると、「$$」に切り捨てられ、$ が 1 つ取り除かれます。

仕様のドル記号 ($) は特別な書式設定用であると読みました。

$n

n 番目の後方参照 (つまり、正規表現パターンの括弧で指定された n 番目に一致したグループのコピー)。n は、有効な後方参照を指定する 1 より大きい最大 2 桁の整数値でなければなりません。

では、これを無効にして特別な書式設定を行わないようにするにはどうすればよいでしょうか? 前もって感謝します!

4

1 に答える 1

1

質問で述べたように、$は のフォーマッタ パラメータのエスケープ シーケンスであるregex_replaceため、PCRE (Perl 互換正規表現) の他の特殊文字と同様に、\!を使用してエスケープできます。だから使用\$\$\$し、C++を使用しているので、使用する必要があります\\$\\$\\$(もちろん、すでに知っています)

于 2012-10-14T23:48:59.967 に答える