正则表达式测试器:常用正则语法速查与在线调试

工具 次閱讀

什么是正则表达式?

正则表达式(Regular Expression,简称 regex 或 regexp)是一种描述文本模式的语言,用于搜索、匹配、提取和替换字符串。几乎所有编程语言都内置了正则支持,是处理文本数据最强大的工具之一。

在线测试正则表达式

使用 tool.tl 正则测试工具

  1. 打开 tool.tl/regex-tester
  2. 在「正则表达式」框输入模式(如 \d+
  3. 在「测试文本」框输入要匹配的内容
  4. 实时高亮显示所有匹配项
  5. 查看捕获组、匹配详情

正则语法速查表

基础匹配

模式含义示例匹配
.任意单个字符(除换行)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}$

捕获组的使用

用括号 () 创建捕获组,可以提取匹配中的特定部分:

# 提取日期中的年月日
模式:(\d{4})-(\d{2})-(\d{2})
文本:2024-03-15
捕获组 1:2024
捕获组 2:03
捕获组 3:15

# Python 使用捕获组
import re
m = re.match(r'(\d{4})-(\d{2})-(\d{2})', '2024-03-15')
print(m.group(1))  # 2024
print(m.group(2))  # 03

常见问题(FAQ)

Q:正则表达式区分大小写吗?

A:默认区分。使用 i 标志(flag)可以忽略大小写:如 /hello/i 可以匹配 Hello、HELLO。在 正则测试工具中可以切换 flags。

Q:如何匹配特殊字符本身(如 . 或 *)?

A:用反斜杠 \ 转义。\. 匹配字面点号,\* 匹配字面星号。记忆规则:需要转义的特殊字符有 . * + ? [ ] { } ( ) ^ $ | \

Q:贪婪匹配和懒惰匹配有什么区别?

A:量词默认贪婪(尽可能多匹配)。在量词后加 ? 变为懒惰(尽可能少匹配)。例如对文本 <a><b><.*> 匹配整个字符串,而 <.*?> 只匹配 <a>