すたらSample

【正規表現,JavaScript】あるパターンでくくられた文字列を抽出する

2012/02/08

抽出条件の詳細

[ ... ] (1文字でくくられた文字列)

くくり文字が1文字なら、苦労はありません。

/\[([^\[\]\s ]+)/g

[start] ... [end] (2文字以上でくくられた文字列)

文字列をくくり文字とすると、難解になります。
否定先読みを利用して抽出しています。

/\[start\]((?:(?!\[start\]|\[end\])[^\s ])+)/g

[ ... ]

上の正規表現は、1文字のくくり文字でも有効です。

/\[((?:(?!\[|\])[^\s ])+)/g

(補足) 厳密に、開始と終了パターンでくくられた文字列のみを抽出する場合

[ ... ] (1文字でくくられた文字列)

/\[([^\[\s ]+)\]/g

[start] ... [end] (2文字以上でくくられた文字列)

/\[start\]((?:(?!\[start\])[^\s ])+)\[end\]/g