正则表达式中的各种分组方式
在使用正则表达式时,我们常常用
来表示分组,例如:1
()
有时我们不需要返回这个分组,只是想用括号来表示语义逻辑,例如:
我们只想表示a的后面是b或者c,但是不想把b或者c当作一个分组返回。此时可以使用
, 语法为1
非捕获的分组(non-capturing group)
:1
(?:)
如果我们希望表达的意思是
,可以用1
a的后面有b或c,但匹配后只返回a
, 语法为1
positive look ahead
:1
(?=)
类似的,如果想匹配
,可以用1
a的后面不是某个pattern
, 语法为1
negative look ahead
1
(?!)
同样,我们也可以表示
, 分别为1
a的前面有或者没有某个pattern
和 1
positive look behind
, 语法为1
negative look behind
和1
(?<=)
:1
(?<!)