什么是正则表达式?
正则表达式(Regular Expression,简称 regex 或 regexp)是一种描述文本模式的语言,用于搜索、匹配、提取和替换字符串。几乎所有编程语言都内置了正则支持,是处理文本数据最强大的工具之一。
在线测试正则表达式
使用 tool.tl 正则测试工具:
- 打开 tool.tl/regex-tester
- 在「正则表达式」框输入模式(如
\d+) - 在「测试文本」框输入要匹配的内容
- 实时高亮显示所有匹配项
- 查看捕获组、匹配详情
正则语法速查表
基础匹配
| 模式 | 含义 | 示例匹配 |
|---|---|---|
. | 任意单个字符(除换行) | a.c 匹配 abc、a1c |
\d | 数字 [0-9] | \d+ 匹配 123 |
\w | 字母、数字、下划线 | \w+ 匹配 hello_world |
\s | 空白字符(空格、Tab 等) | \s+ 匹配多个空格 |
\D | 非数字 | 大写取反 |
[abc] | 字符集:a 或 b 或 c | [aeiou] 匹配元音 |
[^abc] | 字符集取反 | [^0-9] 匹配非数字 |
量词
| 量词 | 含义 |
|---|---|
* | 0 次或多次 |
+ | 1 次或多次 |
? | 0 次或 1 次(可选) |
{n} | 恰好 n 次 |
{n,m} | n 到 m 次 |
{n,} | 至少 n 次 |
锚点与边界
| 符号 | 含义 |
|---|---|
^ | 字符串开头 |
$ | 字符串结尾 |
\b | 单词边界 |
常用正则模式大全
# 中国手机号(1开头11位)
^1[3-9]\d{9}$
# 电子邮箱
^[\w.+-]+@[\w-]+\.[\w.]{2,}$
# 中国大陆身份证号
^\d{17}[\dXx]$
# IPv4 地址
^(\d{1,3}\.){3}\d{1,3}$
# URL(http/https)
https?://[\w\-.]+(:\d+)?(/[\w\-./?%&=#]*)?$
# 中文字符
^[\u4e00-\u9fa5]+$
# 正整数
^[1-9]\d*$
# 日期(YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
# 十六进制颜色
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
# 邮政编码(中国6位)
^\d{6}$
捕获组的使用
用括号 () 创建捕获组,可以提取匹配中的特定部分: