字符 |
|
补集(相反的) |
. |
除换行符(\n)以外的任意字符 |
\n(换行) |
\w |
单词字符 (指大小写字母、0-9的数字、下划线、汉字) |
\W |
\d |
数字(0-9) |
\D(非数字) |
\s |
空白字符(空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f) |
\S |
.* |
匹配任意文本,不包括回车(\n)? |
|
[内容] |
匹配括号内的列出的字符| |
[^内容] (匹配非[]内所列出的字符) |
定位字符
表达式 |
说明 |
相反的 |
^ |
表示待匹配串的开始位置(如:acute 可以用^ac),在[]内为非 |
|
$ |
表示待匹配串的结束位置 (如:acute 可以用te$) |
|
\b |
单词的边界 (可以替换"^""$"使用 如 \bac 或 te\b) |
\B 义不在首位与未尾 (如acute \Bcu 与ut\ |
重复描述字符
表达式 |
说明 |
示例 |
{n} |
前面的字符n次 |
aabbbcccc a{2} 结果:aa |
{n,} |
前面的字符n次或以上 |
aabbbcccc b{2,} 结果:bbb b{4,} 无结果 |
{n,m} |
前面的字符n-m次 |
aabbbcccc b{2,3} 结果:bbb , b{4,5} 无结果 |
? |
前面的字符0-1次 |
aabbbcccc aaa?bb 结果:aabb (即可能存在的意思) |
+ |
前面的字符1或以上 |
aabbbcccc c+ 结果:cccc (一定存在1次,或以上) |
* |
前面的字符0或以上 |
aabbbcccc a* 结果aa c*结果cccc (匹配多个字符,字符量大时不适用) |
负向零宽断言
表达式 |
说明 |
示例 |
(?=内容) |
断言自身出现的位置的后面能匹配表达式exp |
I'm singing while you're dancing 表达式:\b\w+(?=ing\b) 结果:sing danc |
(?<=内容) |
断言自身出现的位置的前面能匹配表达式exp |
reading a book 表达式:(?<=\bre)\w+\b 结果:ading |
特殊配匹字符
符号 |
说明 |
示例 |
| |
逻辑"或" |
aabbbcccc c+|a+ 结果:aa cccc |
\ |
转义符 |
\用于转换做用 |
\r |
回车符 |
|
\n |
换行符 |
|
\v |
竖向制表符 |
|
\f |
换页符 |
|
\t |
制表符,Tab |
|
\b |
通常是单词分界位置,但如果在字符类里使用代表退格 |
|
\e |
Escape |
|
\a |
报警字符(打印它的效果是电脑嘀一声) |
|
\0nn |
ASCII代码中八进制代码为nn的字符 |
|
\xnn |
ASCII代码中十六进制代码为nn的字符 |
|
\unnnn |
Unicode代码中十六进制代码为nnnn的字符 |
|
\cN |
ASCII控制字符。比如\cC代表Ctrl+C |
|
\A |
字符串开头(类似^,但不受处理多行选项的影响) |
|
\Z |
字符串结尾或行尾(不受处理多行选项的影响) |
|
\z |
字符串结尾(类似$,但不受处理多行选项的影响) |
|
\G |
当前搜索的开头 |
|
\p{name} |
Unicode中命名为name的字符类,例如\p{IsGreek} |
|
(?>exp) |
贪婪子表达式 |
|
(?<x>-<y>exp) |
平衡组 |
|
(?im-nsx:exp) |
在子表达式exp中改变处理选项 |
|
(?im-nsx) |
为表达式后面的部分改变处理选项 |
|
(?(exp)yes|no) |
把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no |
逻辑与IF...the..else..相同意义 |
(?(exp)yes) |
同上,只是使用空表达式作为no |
逻辑IF...the.. |
(?(name)yes|no) |
如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no |
|
(?(name)yes) |
同上,只是使用空表达式作为no |
|
正则测试工具https://files.cnblogs.com/files/praybb/RegexTester.rar