前の日 / 次の日 / 最新 / 2010-03

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2010-03-05 Fri

std.regex での正規表現にはWYSIWYG文字列を使う [D言語]

std.regex での正規表現で普通の文字列を使うと、
regex 関数に渡す \ の数とマッチされる文字列の \ の数が、
一致しないので、しんどい。

auto r2 = regex("\"\\\""); //\"\\\" にマッチしないで \"\"にマッチ
auto r3 = regex("\"\\\\\""); //\"\\\" にマッチ

WYSIWYG文字列つかうとエスケープが楽になる。

auto r1 = regex(`"\\"`); //\"\\\" にマッチ
auto r2 = regex(r"`\\`"); //\`\\` にマッチ

この場合 " と ` が混在する \"\\` にマッチ正規表現が書けない。

そこで、" と ` が混在できるデリミタ指定文字列がおすすめ。

auto r1 = regex(q"{"\\`}"); //\"\\` にマッチ