正则表达式
正则表达式
常用的正则表达式
|
用途 |
正则表达式 |
示例 |
说明 |
|---|---|---|---|
|
Email地址 |
^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
常用邮箱格式 |
|
|
域名 |
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? |
支持多级域名 |
|
|
Internet URL |
^[a-zA-Z]+://[^\s]+$ |
常用URL格式 |
|
|
手机号码 |
^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$ |
13812345678 |
中国大陆手机号 |
|
身份证号 |
(^\d{15}$)|(^\d{18}$)|(^\d{17}[\dXx]$) |
110101199003071234 |
15/18位,末位可为X |
|
IPv4地址 |
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3} |
192.168.1.1 |
IPv4格式 |
常用语法
常用的元字符
|
代码 |
说明 |
|---|---|
|
. |
匹配除换行符以外的任意字符 |
|
\w |
匹配字母或数字或下划线或汉字 |
|
\s |
匹配任意的空白符 |
|
\d |
匹配数字 |
|
\b |
匹配单词的开始或结束 |
|
^ |
匹配字符串的开始 |
|
$ |
匹配字符串的结束 |
常用的限定符
|
代码/语法 |
说明 |
|---|---|
|
* |
重复零次或更多次 |
|
+ |
重复一次或更多次 |
|
? |
重复零次或一次 |
|
{n} |
重复n次 |
|
{n,} |
重复n次或更多次 |
|
{n,m} |
重复n到m次 |
常用的反义代码
|
代码/语法 |
说明 |
|---|---|
|
\W |
匹配任意不是字母,数字,下划线,汉字的字符 |
|
\S |
匹配任意不是空白符的字符 |
|
\D |
匹配任意非数字的字符 |
|
\B |
匹配不是单词开头或结束的位置 |
|
[^x] |
匹配除了x以外的任意字符 |
|
[^aeiou] |
匹配除了aeiou这几个字母以外的任意字符 |
懒惰限定符
|
代码/语法 |
说明 |
|---|---|
|
*? |
重复任意次,但尽可能少重复 |
|
+? |
重复1次或更多次,但尽可能少重复 |
|
?? |
重复0次或1次,但尽可能少重复 |
|
{n,m}? |
重复n到m次,但尽可能少重复 |
|
{n,}? |
n重复n次以上,但尽可能少重复 |
其他语法
|
代码/语法 |
说明 |
|---|---|
|
\a |
报警字符(打印它的效果是电脑嘀一声) |
|
\b |
通常是单词分界位置,但如果在字符类里使用代表退格 |
|
\t |
制表符,Tab |
|
\r |
回车 |
|
\v |
竖向制表符 |
|
\f |
换页符 |
|
\n |
换行符 |
|
\e |
Escape |
|
\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) |
贪婪子表达式 |
|
(?-exp) |
平衡组 |
|
(?im-nsx:exp) |
在子表达式exp中改变处理选项 |
|
(?im-nsx) |
为表达式后面的部分改变处理选项 |
|
(?(exp)yes|no) |
把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no |
|
(?(exp)yes) |
同上,只是使用空表达式作为no |
|
(?(name)yes|no) |
如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no |
|
(?(name)yes) |
同上,只是使用空表达式作为no |
基本构成
正则表达式的基本构成包括:
- 字符:直接匹配某个字符,例如 a 匹配字符 a,1 匹配数字 1。
- 元字符:有特殊意义的字符,例如:
- .:匹配任意字符(除换行符外)。
- \d:匹配任何数字,等价于 [0-9]。
- \w:匹配任何字母、数字或下划线,等价于 [a-zA-Z0-9_]。
- \s:匹配任何空白字符(如空格、制表符、换行符等)。
- ^:匹配字符串的开始。
- $:匹配字符串的结束。
- 字符集和字符范围:
- [abc]:匹配 a、b 或 c 中的任意一个字符。
- [a-z]:匹配任意小写字母。
- [^abc]:匹配除 a、b、c 以外的任意字符。
- 量词:控制字符匹配的次数,例如:
- *:匹配 0 次或多次。
- +:匹配 1 次或多次。
- ?:匹配 0 次或 1 次。
- {n}:匹配 n 次。
- {n,}:匹配至少 n 次。
- {n,m}:匹配 n 到 m 次。
- 分组:可以将多个字符或子表达式组合起来作为一个单元:
- (abc):匹配字符串 "abc"。
- a|b:匹配 a 或 b。

浙公网安备 33010602011771号