fixmint
ZH

测试和调试正则表达式

边输入边查看每一处匹配、每个分组和替换结果,并用白话解释表达式。

  • 在您的设备上运行
  • 无需注册
  • 访问过一次后可离线使用
标志

在替换内容中,$1 表示第 1 个分组,$<name> 表示命名分组,$& 表示整个匹配。

0 匹配
文本中的匹配
替换后的文本

表达式含义

代码


    

如何测试正则表达式

  1. 输入表达式,勾选需要的标志。
  2. 粘贴要匹配的文本。
  3. 查看匹配结果和解释,或复制你所用语言的代码。

常见问题

我的文本会被上传吗?

不会。表达式在你的浏览器里编译和运行,由后台线程(Web Worker)处理。任何内容都不会发送到服务器。

为什么测试器提示表达式运行时间过长?

有些表达式在接近匹配却又不完全匹配的长文本上会发生指数级回溯,例如对一长串 a 使用 (a+)+$。测试器会在一秒后中止本次运行。请简化重复部分,例如用 a+ 代替 (a+)+。

JavaScript、Python 和 PHP 有区别吗?

有,细节上有所不同。Python 用 (?P<name>...) 写命名分组,并且在没有第三方模块的情况下不支持 \p{...}。PHP 要用 / 作为分隔符把表达式包起来,并需要 u 标志才能进行 Unicode 匹配。代码标签页会显示每处差异。

替换文本中的 $1、$<name> 和 $& 是什么意思?

$1 是第一个分组的文本,$<name> 是命名分组的文本,$& 是整个匹配的内容。不同语言写同样的替换内容,写法也各不相同。

评价

    还没有评价。快来抢先评价。

    你的评分

    你的邮箱不会被显示或保存。

    阅读更多