?的五种含义:
1.?左边是非量词元字符,表示左侧内容出现0-1次
2.?左边是量词元字符,表示取消贪婪模式
3.(?:)表示只匹配不捕获
4.(?=)表示正向预查
5.(?!)表示负向预查
()的三种含义
1.改变优先级
2.分组捕获
3.分组引用
[]的两种含义
1.本身含义
2.不能多位
名词:
1. 匹配:是指用正则验证真假
2. 捕获:是指用正则拿到东西
常见的正则匹配与捕获的方法
reg: test exec.....
str: split replace match.....
栗子:去除左右两边的符号,中间多个符号时,保留单个符号eg:⊙A⊙B⊙(=>A⊙B) A⊙⊙B(=>A⊙B) ⊙A⊙(=>A) ⊙a⊙⊙b⊙c⊙ (=> a⊙b⊙c)
let spliter = '\u2299'
let reLeft = new RegExp('^'+spliter+'+','g')
let reRight = new RegExp(spliter + '+$','g')
let resSpliter = new RegExp(spliter+'+','g')
let example = '⊙A⊙⊙B⊙C⊙⊙'
example.replace(reLeft,'').replace(reRight,'').replace(resSpliter,spliter)
### 换行符进行分割
str.split(/[(\r\n)\r\n]+/g)
/[(\r\n)\r\n]+/g