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

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

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

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

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

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. ```$$``` : 表示$字符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 9,502评论 0 20
  • 前言 对于正则,著称火星文字,见名知意主要它晦涩难懂,一直以来,看到它总是怕怕的,在平时,也只是简单的用用,其主要...
    itclanCoder阅读 4,193评论 0 2
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 6,473评论 0 9
  • 新年伊始,往日的冬寒依旧在空气中弥漫,绚烂的烟花不时在天空更迭。长辈眼中的我们,在一岁一岁长大。真实的我们,则是在...
    丑小鹅阅读 1,092评论 0 2
  • 一如往常,在刷了一遍朋友圈之后,才发现,今天是2016年最后一天! “后知后觉”成为2016年的常态,当然,这仅限...
    木子如磐阅读 1,891评论 2 0