正则先行和后行断言

(?=)正向前

bb(?=aa) 查找aa的前面是bb

js
const expression = /bb(?=aa)/; expression.test('bbaa'); // true expression.test('ccaa'); // false

(?<=)正向后

(?<=aa)bb 查找aa后面是bb

js
const expression = /(?<=aa)bb/; expression.test('aabb'); // true expression.test('aabc'); // false

(?!)负向前

cc(?!aa) 查找cc的后面不是aa

js
const expression = /cc(?!aa)/; expression.test('ccaa'); // false expression.test('ccdd'); // true

(?<!) 负向后

(?<!aa)cc 查找cc前面不是aa

js
const expression = /(?<!aa)cc/; expression.test('aacc'); // false