正規表現の後読みが実装された
概要
後読みは「何かが直前に来る目標」を指す際に便利な表現である。
解説
先読み「(?=pattern)」 がpatternの直前の位置にマッチするのに対して、
後読み「(?<=pattern)」はpatternの直後の位置にマッチする。
どちらもpattern自体にはマッチしない。
先読みが「何かが続く目標」を指すのに向いているのに対して、
後読みは「何かに続く目標」を指すのに向いている。
例
基本:
// 肯定的後読み:lightかdeepに続く色を取り出す let str1 = 'red, deep green, light blue, white' str1.match(/(?<=(?:[light|deep] ))\w+/g) // ["green", "blue"] // 否定的後読み:200X年を除いて項目を取り出す let str2 = '1997:ES1\n1998:ES2\n1999:ES3\n2009:ES5\n2011:ES5.1\n2015:ES6' str2.match(/(?<!200\d.+)ES.+/g) // ["ES1", "ES2", "ES3", "ES5.1", "ES6"]
応用:htmlからタグの名前を抜き出す(「<」に続く英字列)
document.documentElement.outerHTML.match(/(?<=<)[\w-]+/g) // ["html", "head", ......]
実装されるバージョン
V8 4.9.14