元素
匹配的单位字符即为元素。
特殊符号 | 释义 |
---|---|
. | 表示任意一个字符 |
^ | 集合内为取非运算符;否则表示字符串开头,用于位置匹配 |
$ | 字符串结尾,用于位置匹配 |
\ | 用于特殊字符转义 |
\. | . |
\^ | ^ |
\$ | $ |
\\ | \ |
\t | 制表符 |
\r | Windows回车符 |
\n | 换行符 |
\b | 区别 //w 和 //W 的单词边界,用于位置匹配 |
\E | 结束 \L或 \U 之间的转换 |
\l | 把下一个字符转换为小写 |
\L | 把 \L到 \E之间的字符转换为小写 |
\u | 把下一个字符转换为大写 |
\U | 把 \U到 \E之间的字符转换为大写 |
\v | 垂直制表符 |
\f | 换页符 |
\( | ( |
\) | ) |
\{ | { |
\} | } |
\| | | |
\xA | 匹配ASCII字符序号为A的16进制元素(此处A代表数字) |
\0A | 匹配ASCII字符序号为A的8进制元素(此处A代表数字) |
[\b] | 退格符 |
(?m) | 分行位置匹配符(注意:有些语言可能不支持) |
集合
由左中括号 ‘[’ 开始到右中括号 ‘]’ 结束的元素组合。
示例 | 释义 |
---|---|
[a] | 表示集合中只有a元素 |
[a-z] | 表示集合中有a到z的所有小写字母 |
[^a] | 表示集合中有除a的所有元素 |
\w 或 [\w] | word缩写,表示所有大小写字母、数字及下划线_ |
\W 或 [\W] | 表示除了 \w 之外的所有元素 |
\d 或 [\d] | digit缩写,表示0~9所有的数字 |
\D 或 [\D] | 表示除了 \d 之外的所有元素 |
\s 或 [\s] | space缩写,表示 \t \r \n 空格 |
\S 或 [\S] | 表示除了 \s 之外的所有元素 |
注意:集合内的字符可以不用转义
匹配符
符号表示 | 释义 |
---|---|
+ | 匹配至少一次 |
* | 匹配至少零次 |
? | 匹配最多一次 |
{a} | 匹配a次 |
{a,} | 至少匹配a次 |
{,b} | 最多匹配b次 |
{a,b} | 至少匹配a次,最多匹配b次 |
其中 a,b代表任意正整数 |
表达式
由左圆括号’('开始到右圆括号‘)’结束的正则表达式片段称之为子表达式。
\n代表对第n个子表达式的回溯引用,在许多实现里,\0代表整个正则表达式。
(?<NAME>X) 代表对正则表达式片段X的 命名捕获,该表达式命名为NAME,引用时使用${NAME}。
?=X表示 向前查找到正则表达式片段X前的位置,X匹配到的及其后的字符串将不予处理。
?!X表示 负向前查找到非正则表达式片段X前的位置,非X匹配到的及其后的字符串将不予处理。
?<=X表示 向后查找到正则表达式片段X后的位置,X匹配到的及其前的字符串将不予处理。
?<!X表示 负向后查找到非正则表达式片段X后的位置,非X匹配到的及其前的字符串将不予处理。
?(N)X|Y表示 回溯引用嵌入条件匹配,即如果第N个子表达式存在那么匹配X否则匹配Y,其中Y可以是可选项。
?(?=X)Y|Z表示 前后查找嵌入条件匹配,即如果匹配到X那么继续匹配Y否则匹配Z,其中Z可以是可选项。