Regex 测试工具 在线

粘贴 pattern,用真实文字测试,在它进入正式验证前看清楚到底匹配了什么。

//
匹配信息0 matches
找不到匹配...
测试字符串
字符数: 82
Hello World! 这是一段 regex 测试文字。 可以试着匹配 words、数字 123 或年份 2025。 也可以测试 HTML 标签、网址或重复模式。
匹配标记
.任意字符
\d数字
\w单字字符
^/$开头 / 结尾

把测好的 pattern 变成小工具

当 regex 成为验证器、解析器或内部 helper 的一部分时,DeployPages 可以托管这个静态工具,让团队使用同一个测试版本。

部署工具网站

为什么使用在线 regex 测试工具?

Regex bug 藏在很小的细节里:少一个 anchor、太贪婪的 quantifier、忘记的 flag,或样本数据和正式环境输入完全不同。即时测试器把 pattern、flags、matches 和 test string 放在一起,让你修真正的 expression,而不是猜。

Regex 速查表

字符类别
. 匹配换行以外的任意字符
\w匹配字母、数字或下划线
\d匹配数字
\s匹配空白字符
[abc]匹配列出的任一字符
[^abc]匹配未列出的任一字符
量词
*匹配零次或多次
+匹配一次或多次
?匹配零次或一次
{n}精确匹配 n 次
{n,}至少匹配 n 次
{n,m}匹配 n 到 m 次
锚点
^匹配字符串开头
$匹配字符串结尾
\b匹配单字边界
\B匹配非单字边界
(?=p)正向先行断言
(?!p)负向先行断言
标志
g全局搜索
i不分大小写模式
m多行模式
s点号可匹配换行
uUnicode 模式

高级 FAQ

贪婪和惰性匹配有什么不同?

贪婪匹配会尽量吃下更多文字。惰性匹配会在 quantifier 后加 ?,让引擎在最早有效匹配处停止。

电子邮件地址应该怎么用 regex 验证?

Regex 可作为实用的第一层检查,但不要把它当成所有权最终证明。验证流程仍然重要。

为什么 regex 在某语言可用,换语言就失败?

Regex 引擎支持的功能不完全相同。JavaScript、PCRE、Python、Java 和数据库 regex 方言在 lookbehind、named groups、Unicode 处理和 escaping rules 上都可能不同。

Regex 会造成性能问题吗?

会。嵌套 quantifier 和模糊 alternative 可能在特定输入上造成大量 backtracking。把 pattern 用在请求验证前,请测试真实 worst-case 字符串。