继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

正则中的 ?= ?<= ?! ?<!=

qq_安之虚静于幻_0
关注TA
已关注
手记 51
粉丝 8
获赞 87

正则中的 ?= 、?<= 、?!、 ?<!=

以前看正则的时候遇到?= 、?<=,在网上搜索出来名字有称之为正向预查、负向预查的,有称之为前瞻、后顾的,看用法的话大概知道是怎么回事,但就是记不住啊,对于我来说,这名称太抽象(鬼扯)了。

今天看书看到作者讲到正则,感觉自己又有所领悟,翻出来重新理解了一下。

如今我的理解是这样的,我将<记为方向,包含这个箭头说明是放在目标内容左边的:

  1. ?= : 询问后面跟着的东西是否等于这个 /b(?=a)/.test(‘bab’)

  2. ?<= : 询问是否以这个东西开头 /(?<=a)b/.test(‘ab’)

  3. ?! : 询问后面跟着的东西是否不是这个 /b(?!a)/.test(‘bb’)

  4. ?<!= :询问是否不是以这个东西开头 /(?<!=a)b/.test(‘bb’)

其实按照我这样理解的话,?! 后面要是加上=就更加符合我的心理预期了,最后还有一点,匹配得到的结果并不包含 ?=、?<=、?!和?<!=里面的内容

顺便记录一下

javascript的replace方法的第二个参数,如果是传入的字符串的话,有几个特殊的东西。

1. ```$&`` : 表示匹配到的结果。'javascript'.replace(/script/, '$&$&') ->  ‘javascriptscript’

2. ```$\```` : 表示匹配到的结果的左边或者说前面的那一堆字符串。 'javascript'.replace(/script/, '$& 不是 $`')  ->  "javascript 不是 java"

3. ```$'``` : 表示匹配到的结果的右边或者说后面的那一堆字符串。 '我是猪'.replace(/我是/, "$&$'")  ->   "我是猪猪"

4. ```$$``` : 表示$字符。

作者:不过从心而已
来源:简书

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP