正则表达式中的结构
字符表示法
字符缩略表示法:\n,\t,\a,\b,\e,\f,\r\,\v
八进制转义:\num
控制字符:\cchar
字符组及相关结构
普通字符组:[a-z][^a-z]
任何字符:.
字符组缩略:\w,\d,\s,\W,\D,\S
锚点及其他“零长度断言”
行、字符串起点:^,\A
行,字符串终点:$,\z,\Z
本次匹配开始的位置(或上次匹配结束的位置):\G
单词分界符:\b,\B,\<,\>
顺序环视符:(?=...),(?!...)
逆序环视:(?<=...),(?<!...)
注释
注释:(?#...),#...
模式修饰符:
i,不区分大小写的匹配模式
x,宽松排列和注释模式
s,点号通配模式
m,增强的行锚点模式
>增强的行锚点模式会影响^和$,通常情况下锚点不能匹配字符串内部换行符,而只能匹配目标字符串的起始位置。但是在增强模式下,它能够匹配字符串中内嵌的文本行的开头位置。
分组、捕获、条件判断和控制
捕获\分组括号:(...),\1,\2
仅用于分组的括号:(?:...)
命名捕获:(?p<Name>...)
固化分组:(?>...)
多选结构:...|...|...
条件判断:(?if then|else)
匹配优先量词:*,+,?{num, num}
忽略优先量词:*?,+?,??,{num, num}?
占有优先量词:*+,++,?+,{num, num}+
单词分界符:\b
警报:\a
进纸符:\f
换行符:\n
回车符:\r
制表符:\t
垂直制表符:\v
【重要】字符组通常表示肯定断言。也就是说它们必须匹配一个字符。排除型字符组仍然需要匹配一个字符,只是他在字符组中没有列出而已。
排除型字符组:匹配未列出字符的字符组