转义
1.添加\
2.如果希望匹配字符串{m,n} 就必须写成\{m,n}
*?转义\*\?
+?转义\+\?
??转义\?\?
.是元字符可以匹配换行符之外的任何字符 转义\.
分组
[1-9]\d{14}(\d{2}[0-9x])? 后两位0-9或者x 或许不出现或许就出现一次
比如匹配长度为13或者16的数字字符串 常犯的错误\d{13,16}但是14或者15的数字字符串同样会匹配
正确的是首先匹配长度为13的数字字符串然后匹配可能出现长度为3的数字字符串
\d{13}(\d{3})?
多选结构
(...|...)在括号内以竖线|分隔开多个子表达式,多选分支的数目没有限制,匹配的时候,整个多选结构被视为单个元素,只要其中某个子表达式能够匹配,整个多选结构的匹配就能成功
删除空白字符
删除行首空白字符,使用(?m)^\s+
删除行尾空白字符 \s+$
环视
<(?!/) 当前位置之后(右侧)不允许出现/能匹配的文本 表示匹配<同时这个<之后不能是/
<?<!/)>在当前位置之前(左侧)不允许出现/能匹配的文本 表示匹配>同时>之前不能是/
(?<!\d)\d{6}(?!\d)准确匹配六位数字构成的字符串
(?=\d+)(?!999) 表示在当前位置 之后必须出现数字字符串,在当前位置,之后不能出现999