返回工具集
游客今日剩余 5 / 5 次免费使用 立即登录
REGEX

正则表达式测试器

实时验证、调试正则表达式,内置常见正则片段。

TEST
2 个匹配

正则表达式

在 / / 之间输入正则,点击标志切换

//

匹配结果

#1…t us at [email protected] or supp…位置 14
#2…t.cc or [email protected] for hel…位置 33

预置模板用于快速上手常见格式校验,生产环境的业务级校验(取值范围、真实有效性)请结合代码逻辑二次确认。

语法速查

常用正则标志与元字符速查,生成时实时可用

g全局匹配

查找所有匹配项,而非第一个就停止。

i忽略大小写

匹配字母时不区分大小写,A 与 a 视为相同。

m多行模式

使 ^ 和 $ 分别匹配每行的开头和结尾。

sdotAll

使 . 匹配包括 \n 在内的所有字符。

^ / $行锚点

^ 匹配行开头,$ 匹配行结尾(m 模式下为每行)。

.任意字符

匹配除换行外的任意单个字符(s 模式下包含换行)。

* + ?量词

* 零或多次,+ 一或多次,? 零或一次。

[abc]字符类

匹配括号内任一字符;[^abc] 取反;[a-z] 区间。

\d \w \s缩写类

\d 数字,\w 字母/数字/下划线,\s 空白字符。

什么是正则表达式测试器?

正则表达式(Regex)是一组定义搜索模式的字符序列,几乎被用于所有编程语言中的文本验证、搜索与提取工作。从验证邮箱格式到解析海量日志,Regex 是开发者工具箱中最强大的利器之一。

本测试器提供实时反馈环境,让你在编写业务代码前能够快速验证正则模式的正确性。它支持全局 (g)、多行 (m)、不区分大小写 (i) 等多种标志,并能清晰地高亮显示所有匹配结果。此外,它还内置了常用正则库,涵盖邮箱、URL、IPv4、手机号等高频场景。

如何使用此工具

在页面上方的输入框中编写你的正则模式(无需包裹修饰符斜杠),并选择需要的标志。在左侧文本区域输入或粘贴要测试的字符串。观察右侧面板,系统会即时标注出所有匹配项,并显示总数。

如果你是正则初学者或急需解决常见任务,可以展开左侧的”常用正则库”侧边栏,点击预设模式即可一键加载。所有的匹配和计算都在你的浏览器本地完成,数据百分之百私密安全。

典型 DevOps 使用场景

日志字段提取
(?P<ts>\d{4}-\d{2}-\d{2})

从 Nginx 或应用日志中用正则提取时间戳、错误级别、请求路径是最高频的运维操作。命名捕获组((?P<ts>\d-\d-\d))比索引捕获组更易维护。注意引擎方言:grep 默认 BRE 不支持 \d 和非捕获组,需加 -E 或 -P;awk 默认 ERE。跨工具移植模式前务必确认目标引擎的语法兼容性,避免在 BRE 中误用 ERE/PCRE 特性导致静默错误。

SemVer 版本号匹配
^v?\d+\.\d+\.\d+$

CI/CD 流水线常需验证 Git Tag 是否符合 SemVer。\d+\.\d+\.\d+(-[\w.]+)? 覆盖 1.2.3 和 1.2.3-rc.1 两种格式,但须加锚点 ^v?\d+\.\d+\.\d+$ 防止 “1.2.3-dirty” 被误判为正式版本。GitHub Actions 的 on.push.tags 只支持简化 glob(v[0-9].*),复杂策略仍需在脚本中用 bash [[ “$TAG” =~ regex ]] 做精确内联匹配,避免引入 grep 子进程开销。

IP 地址提取与过滤
\b(\d{1,3}\.){3}\d{1,3}\b

grep -Eo 可从日志批量提取 IP 地址,但纯正则无法验证合法范围(999.999.999.999 同样会匹配)。过滤私有网段可组合 grep -v 做二次筛选。应用层做严格校验时建议使用语言内置库(Python ipaddress、Go net.ParseIP),正则仅适用于提取和粗筛阶段。这一分层策略——正则提取、库校验——在生产代码中可靠性更高。

敏感数据脱敏替换
(?<=password=)[^&]+

从日志或 API 响应中脱敏 Token 和密码是生产合规的必要手段。sed 可用反向引用替换 Authorization 头内容;Python 中后向断言((?<=password=))可精确替换值而不影响键名。注意:正则脱敏是尽力而为,私钥、完整 PAN 卡号等强敏感数据应在进入日志管道前做结构化过滤,而非事后清洗——日志系统本身可能已有持久化副本。

CI/CD 分支与 Tag 过滤
^(main|feature/|release/)

master

配置文件键值解析
^([\w.]+)\s*=\s*(.+)$

解析 .env 或 INI 格式配置时,^([\w.]+)\s*=\s*(.+)$ 捕获键名和值(允许等号两侧有空格)。注释行(# 开头)和空行需在循环中用 ^\s*(#

常见错误模式

贪婪量词(*、+)匹配尽可能多的字符,在解析 HTML 或 JSON 时极易”过度匹配”。典型陷阱:<.*> 从第一个 < 一直匹配到最后一个 >,而非最短标签。修正方案是懒惰量词 <.*?> 或否定字符类 <[^>]*>,后者性能更优——它明确告知引擎 > 不在匹配范围内,完全消除回溯试探,在大文本场景下速度差距可达数倍。

灾难性回溯是 ReDoS 攻击的根源。嵌套量词(如 (a+)+)或重叠交替分支(如 (ab

遗漏 m 标志导致 ^ 只锚定整个字符串开头而非逐行锚定,是处理日志文件的高频 bug。另一个常见问题是转义混乱:JS/Python 字符串字面量中 \d 实际是 d(反斜杠被消耗),需要双反斜杠 \\d 或使用原始字符串(Python r'\d')。Unicode 场景下,\w 默认只覆盖 ASCII 字母,要匹配中文等字符需启用 u 标志(JavaScript)或使用 \p Unicode 属性转义(需引擎支持)。

常见问题