基本的な使い方の説明は他のサイトに譲ります。このページはある程度、正規表現が分かっている方を対象とし中級者でも見落としがちな部分について説明します。
「\x」と「$x」
- 「\x」x番目の「()」の部分にマッチする部分文字列。正規表現パターンの中で使用する
- 「$x」x番目の「()」の部分にマッチする部分文字列。置換の際に置換後文字列の中で使用する
var reg = /(\d{3})\1/g;
var str = "123456456789123123"
alert(str.match(reg));
// →「456456」「123123」がヒット
var str = "Jack Bauer";
str = str.replace(/(\w+)\s+(\w+)/gm, "$2 $1");
alert(str);
// →Bauer Jack
肯定的前方先読み「x(?=y)」
xに続いてyが現れる場合にのみ、xにマッチします。
var reg = /Jack \d (?=Bauer)/g;
var str = "Jack 1 Nicholson; Jack 2 Bauer; Jack 3 Pot";
alert(str.match(reg));
// →Jack 2
否定的前方先読み「x(?!y)」
xに続いてyが現れない場合にのみ、xにマッチします。
var reg = /Jack (?!Bauer)/g;
var str = "Jack 1 Nicholson; Jack 2 Bauer; Jack 3 Pot";
alert(str.match(reg));
// →Jack 1, Jack 3
|