正規表現メモ

JavaScript正規表現で難しかったところを調べた。
http://ja.wikibooks.org/wiki/JavaScript_%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA_RegExp
正規表現の先読みについて解説してみる - http://rubikitch.com/に移転しました
String.prototype.replace() - JavaScript | MDN

//簡単な例
"abc".match(/(a)(bc)/); // abc,a,bc

//後方参照しない
"abc".match(/(a)(?:bc)/); // abc,a

//後方参照
"abcba".match(/(.)c\1/); // bcb,b

//最短マッチ(下は最長マッチ)
"abcba".match(/.+?b/); // ab
"abcba".match(/.+b/); // abcb

//置換
"abcba".replace(/(a)bc/, "$1_"); // a_ba
"abcba".replace(/(a)bc/, "$$_"); // $_ba

//先読み(一番上は先読みなし)
"foo bar".match(/[a-z]{3}/g); // foo,bar
"foo bar".match(/(?=f)[a-z]{3}/g); // foo
"foo bar".match(/(?!f)[a-z]{3}/g); // bar