2010-03-05
std.regex での正規表現で普通の文字列を使うと、
regex 関数に渡す \ の数とマッチされる文字列の \ の数が、
一致しないので、しんどい。
auto r2 = regex("\"\\\""); //\"\\\" にマッチしないで \"\"にマッチ auto r3 = regex("\"\\\\\""); //\"\\\" にマッチ
WYSIWYG文字列つかうとエスケープが楽になる。
auto r1 = regex(`"\\"`); //\"\\\" にマッチ auto r2 = regex(r"`\\`"); //\`\\` にマッチ
この場合 " と ` が混在する \"\\` にマッチ正規表現が書けない。
そこで、" と ` が混在できるデリミタ指定文字列がおすすめ。
auto r1 = regex(q"{"\\`}"); //\"\\` にマッチ