Utils365

正则表达式在线测试

写下正则表达式,边输入边看它匹配到了什么。

输入不带斜杠的模式,或粘贴完整的 /pattern/flags。

粘贴文本、打开文件或将文件拖放到这里

速查表
\d
一个数字,0–9
\w
字母、数字或下划线
\s
空格、制表符或换行
.
除换行外的任意字符
^
文本开头(加 m 时为行首)
$
文本结尾(加 m 时为行尾)
*
前一项,0 次或多次
+
前一项,1 次或多次
?
前一项,可有可无
{n,m}
前一项,n 到 m 次
[abc]
a、b 或 c 中的任意一个
(…)
分组,捕获为 $1、$2、…
(?<name>…)
命名分组,捕获为 $<name>
a|b
左边或右边

下一步: 文本对比 · JSON 格式化

报告此工具的问题

如何使用 正则表达式测试

  1. 输入模式

    输入不带斜杠的正则表达式,或粘贴完整的 /pattern/flags,并勾选所需的标志。

  2. 添加测试文本

    粘贴文本或打开文件。每个匹配都会高亮显示,下方列出其位置和分组。

  3. 替换或复制

    勾选“替换”,用 $1 或 $<name> 尝试替换,然后复制结果或正则表达式本身。

为什么选择 Utils365

  • 分组一目了然

    每个匹配都会显示编号分组和命名分组,方便确认 $1 或 $<year> 会得到什么。

  • 不怕失控的模式

    匹配在后台运行并有一秒时限,无限回溯的模式也不会让页面卡死。

  • 与代码相同的引擎

    使用浏览器的 JavaScript 正则引擎,结果与 Node.js 和浏览器中完全一致。

  • 隐私至上

    您的模式和文本都留在浏览器中。不会上传任何内容,可放心测试日志文件和客户数据。

常见问题

这里使用哪种正则语法?

JavaScript(ECMAScript),与浏览器和 Node.js 相同。大多数模式在其他语言中效果一样,但后行断言、命名分组和部分转义在较旧的引擎中有所不同。

g、i、m、s、u 和 y 标志有什么作用?

g 查找所有匹配,i 忽略大小写,m 让 ^ 和 $ 在每一行匹配,s 让 . 匹配换行,u 启用完整的 Unicode 支持,y 让每次匹配从上一次结束的位置开始。

如何在替换中使用捕获分组?

编号分组写 $1、$2 等,命名分组写 $<name>,整个匹配写 $&。要插入真正的美元符号,请写 $$。

为什么提示我的模式耗时太长?

有些模式,例如对长字符串使用 (a+)+,在放弃之前会尝试极其多种匹配方式。这叫灾难性回溯。让嵌套的重复更具体即可解决。

为什么只看到一个匹配?

没有 g 标志时,正则表达式在第一个匹配处就会停止。勾选“全局 (g)”即可找到全部匹配。

如何匹配字面上的点或方括号?

在前面加反斜杠:\. 匹配点,\[ 匹配方括号。其他特殊字符如 * + ? ( ) { } | ^ 和 $ 也一样。