目录
The Regular Expression Visualizer, Simulator & Cross-Compiler Tool
1 正则表达式概念
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
2 正则表达式语法
元字符
符号 | 含义 |
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
限定符
符号 | 含义 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
反义词
符号 | 含义 |
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
3 正则表达式的应用
汉字
2-4个汉字
^[\u4e00-\u9fa5]{2,4}$
字符
4个英文字符
^([A-Za-z]{4}$
数字
n个数字两种实现:
^[0-9]{n}$
^\d{n}$
邮政编码
^[0-9]{6}$
[1-9]\d{5}(?!\d)
日期格式
^\d{4}-\d{1,2}-\d{1,2}
手机号码
^1[3-9][0-9]{9}$
IP地址
查找ip
\d+.\d+.\d+.\d+
验证ip
((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d).){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
邮箱地址
两种实现方式:
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$
^\w+([-+.]\w+)*@\w+([-.]\w+).\w+([-.]\w+)$
身份证号
两种实现方式:
^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|" + "(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$
^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
特殊字符
我们都知道[、. 、]在正则表达式中有着特定的含义,如果仅仅是想匹配[、.、]本身,则需要对特殊字符进行转义。如:[、.、]。转义符\如果也想匹配本身,则为 \。
4 正则表达式可视化
iHate Regex
https://ihateregex.io/
regex101
https://regex101.com/
The Regular Expression Visualizer, Simulator & Cross-Compiler Tool
https://blog.robertelder.org/regular-expression-visualizer/