关于javascript:正则匹配之正向先行断言

41次阅读

共计 702 个字符,预计需要花费 2 分钟才能阅读完成。

(?=p)
合乎 p 子模式后面的那个地位。换句话说是,有一个地位,紧跟其后须要满足 p 子模式。也有一个学名叫正向后行断言。
上例子:

'xxx_love_study_js.mp4'.replace(/(?=xxx)/g, '❤️') // ❤️xxx_love_study_js.mp4

(?!p)
(?=p)反过来的意思,能够了解为 (?=p) 匹配到的地位之外的地位都是属于 (?!p) 的,它也有一个学名叫负向后行断言。

'xxx_love_study_js.mp4'.replace(/(?!xxx)/g, '❤️') 

// (?=xxx)的输入
❤️xxx_love_study_js.mp4
// (?!xxx)的输入
x❤️x❤️x❤️_❤️l❤️o❤️v❤️e❤️_❤️s❤️t❤️u❤️d❤️y❤️_❤️js❤️.❤️m❤️p❤️4❤️

(?<=p)
合乎 p 子模式前面 (留神(?=p) 示意的是后面)的那个地位。换句话说是,有一个地位,其后面的局部须要满足 p 子模式。

'xxx_love_study_js.mp4'.replace(/(?<=xxx)/g, '❤️') //xxx❤️_love_study_js.mp4

(?<!p)
(?<=p)反过来的意思,能够了解为 (?<=p) 匹配到的地位之外的地位都是属于 (?<!p) 的


'xxx_love_study_js.mp4'.replace(/(?<!xxx)/g, '❤️') 

// (?<=xxx)的输入
xxx❤️_love_study_js.mp4
// (?<!xxx)的输入
❤️x❤️x❤️x_❤️l❤️o❤️v❤️e❤️_❤️s❤️t❤️u❤️d❤️y❤️_❤️js❤️.❤️m❤️p❤️4❤️

正文完
 0