正则

211 阅读1分钟

正则基础

() [] {} 区别

  • () 是分组
  • [] 是字符集 是一个范围 [0-9] 意思就是匹配0到9 之间的数字
  • {} 代表前面匹配的长度

^ 两种用法

  • 限定开头
  • 取反 (只有在字符集中 才是取反的意思)eg: [^a] 意思是匹配不是a 的

es6正则

断言

srcReg = /(?<= src=('|"))[^\s]+(?='|")/ig //匹配src 内的值

  • 先行断言(?= )
    /x(?=y)/ x只有在y前面才匹配
    /\d+(?=%)/ 只匹配百分号之前的数字
  • 先行否定断言(?! )
    /x(?!y)/ x只有不在y前面才匹配
    /\d+(?!%)/ 只匹配不在百分号之前的数字
    /\d+(?=%)/.exec('100% of US presidents have been male') // ["100"]
    /\d+(?!%)/.exec('that’s all 44 of them') // ["44"]
  • 后行断言 (?<=)
    /(?<=y)x/ x只有在y后面才匹配
    /(?<=$)\d+/ 只匹配美元符号之后的数字
  • 后行否定断言 /(? /(?<!$)\d+/ 只匹配不在美元符号后面的数字
    /(?<=$)\d+/.exec('Benjamin Franklin is on the 100 bill') // ["100"]<br> /(?<!\)\d+/.exec('it’s is worth about €90') // ["90"]