?:
表示非捕获分组,只匹配但是不捕获后面内容,其后有子表达式时会捕获子表达式中内容
如:(?:a(b))?
解析:
(?:a(b))整体可有可无,无时匹配内容为空
当有ab时,匹配ab,但不捕获a,捕获b
示例:
(?:a(b))?
xxxbxxabxxxx
匹配结果b