0
(ようにバックスラッシュをエスケープ文字として動作)バックスラッシュと単一引用符を含めるように正規表現を変更します。私は次の文字列を持っている
arg1('value1') arg2('value '')2') arg3('value\'3')
値を抽出するための正規表現は次のようになります。
boost::regex re_arg_values("('[^']*(?:''[^']*)*')");
今この正規表現は'値\' 3 'を抽出することができません。どのようにして正規表現を修正して括弧の中に\ 'を含めることができますか?
FYI。値には、スペース、特殊文字、およびタブを含めることができます。コードはCPPにあります。
ありがとうございます。
このように - ['( '[^'] *(?: '' [^ '] *)*' [^]] *)'](https://regex101.com/r/d3nOG2/1 )? – Gurman
モバイルからの書き込みについては、「['[^ \\\\'] *(?:('' '| \\\\。)[^ \\\'] *)* ') '。改行を含む文字列がある場合は、 '.'を' [\\ s \\ S] 'に置き換えてください。 SOのコメントからコピー貼り付けすると、ガベージ文字が導入される可能性があることに注意してください。そうした場合は、目に見えない文字もチェックしてください。 –
@WiktorStribiżew、 それは働いていません – hydra123