JavaScript の負の後読みと同等
特定の文字セットで始まらない文字列と一致する負の後読みは、 では直接サポートされていません。 JavaScript の正規表現。ただし、同様の結果を達成する別のアプローチもあります。
肯定先読みと文字列反転
JavaScript は肯定先読み (?=) をサポートしているため、1 つの方法には次のものが含まれます。
例:
const reverse = s => s.split('').reverse().join(''); const regexp = /m(?!([abcdefg]))/; test(['jim', 'm', 'jam'], regexp); function test(strings, regexp) { strings.map(reverse).forEach((s, i) => { match = regexp.test(s); console.log(strings[i], match, 'Token: ', match ? reverse(regexp.exec(s)[0]) : 'Ø'); }); }
結果:
jim true Token: m m true Token: m jam false Token: Ø
後読みアサーションサポート (以来2018)
2018 年に、否定後読みを含む後読みアサーションが ECMAScript 言語仕様の一部になりました。これらは次のように使用できます:
負の後読み:
(?<!...)
正後読み:
(?<=...)
例:
「max-height」に一致するが「line-height」には一致しない場合:
regexp = /thgieh(?!(-enil))/; test(['max-height', 'line-height'], regexp);
結果:
max-height true Token: height line-height false Token: Ø
以上がJavaScript 正規表現で負の後読みをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。