0%
  
    
      
      
  
  
  
  
    
    
      
      
      
    
    
      
    
      
    
    
    
    
        在线工具
匹配A字符与B字符之间的字符(包含AB)
A.*?B
匹配A字符与B字符之间的字符(包含A不包含B)
A.*?(?=B)
匹配A字符与B字符之间的字符(不包含AB)
(?<=A).*?(?=B)
资料
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
   | ### 正则中的 ?= 、?<= 、?!、 ?<!=
  以前看正则的时候遇到?= 、?<=,在网上搜索出来名字有称之为正向预查、负向预查的,有称之为前瞻、后顾的,看用法的话大概知道是怎么回事,但就是记不住啊,对于我来说,这名称太抽象(鬼扯)了。
  今天看书看到作者讲到正则,感觉自己又有所领悟,翻出来重新理解了一下。
  如今我的理解是这样的,我将<记为方向,包含这个箭头说明是放在目标内容左边的:
  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. ```$$``` : 表示$字符。
  作者:不过从心而已 链接:https://www.jianshu.com/p/661af704198c 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
   |