元字符 |
描述 |
\ |
转义字符,用于匹配一些保留的字符 [] () {} . * + ? ^ $ \
\n 匹配一个换行符,\\ 匹配 \ 而\( 则匹配(
|
| |
或运算符,匹配符号前或后的字符串 |
^ |
从字符串开始位置匹配 |
$ |
从字符串结束位置匹配 |
. |
匹配除换行符外的任意单个字符 |
* |
匹配前面的子表达式零次或多次,等价于{0,}
|
+ |
匹配前面的子表达式一次或多次,等价于{1,}
|
? |
匹配前面的子表达式零次或一次,等价于{0,1}
|
{} |
匹配前面的子表达式重复的次数。
{n,m} 匹配前面的字表达最少 n 次且最多 m 次
{n,} 匹配前面的字表达最少 n 次
{n} 匹配前面的字表达 n 次 |
[] |
字符集合
[xyz] 匹配所包含的任意一个字符
[a-z] 匹配指定范围内的任意一个字符 |
[^] |
负字符集合
[^xyz] 匹配未包含的任意字符
[^a-z] 匹配任何不在指定范围的任意字符 |
() |
特征标群,写在 () 中的子模式
(parttern) 匹配 pattern 并获取这一匹配。 |
简写 |
描述 |
. |
除换行符外的所有字符 |
\w |
匹配所有字母数字, 等同于 [a-zA-Z0-9_]
|
\W |
匹配所有非字母数字, 即符号, 等同于: [^\w]
|
\d |
匹配数字: [0-9]
|
\D |
匹配非数字: [^\d]
|
\s |
匹配所有空格字符, 等同于: [\t\n\f\r\p{Z}]
|
\S |
匹配所有非空格字符: [^\s]
|
\f |
匹配一个换页符 |
\n |
匹配一个换行符 |
\r |
匹配一个回车符 |
\t |
匹配一个制表符 |
\v |
匹配一个垂直制表符 |
\p |
匹配 CR/LF (等同于 \r\n ),用来匹配 DOS 行终止符 |
|
|
用户名 |
^[a-z0-9_-]{3,16}$ |
密码 |
^[a-z0-9_-]{6,18}$ |
十六进制值 |
^#?([a-f0-9]{6}$ |
电子邮箱 |
^#?([a-f0-9]{6} |[a-f0-9]{3})
^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$
|
URL |
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$ |
IP 地址 |
((2[0-4]\d |25[0-5] |[01]?\d\d?)\.){3}(2[0-4]\d |25[0-5] |[01]?\d\d?)
^(?:(?:25[0-5] |2[0-4][0-9] |[01]?[0-9][0-9]?)\.){3}(?:25[0-5] |2[0-4][0-9] |[01]?[0-9][0-9]?)$
|
HTML 标签 |
^<([a-z]+)([^<]+)*(?:>(.*)<\/\1> |\s+\/>)$
|
删除代码 \ 注释 |
(?<!http: |\S)//.*$
|
Unicode 编码中的汉字范围 |
^[\u2E80-\u9FFF]+$ |
https://regex101.com/
github 项目:learn-regex
正则表达式速查表