在线测试 JavaScript 正则(浏览器原生 RegExp):边输入边匹配、高亮结果、列出捕获组,还能做替换预览。
$1、$<name>、$&),实时看替换后的文本。g 全局、i 忽略大小写、m 多行、s 点匹配换行、u Unicode、y 粘连。文本只在浏览器本地处理,不上传。
| 记号 | 含义 | 示例 |
|---|---|---|
^ $ |
开头 / 结尾(m 下为每行) |
^Admin |
\d \w \s |
数字 / 单词字符 / 空白 | \d{6} |
. |
任意字符(s 下含换行) |
a.c |
* + ? |
0+ / 1+ / 0或1(或非贪婪) | \w+? |
{n} {n,} {n,m} |
重复 n / 至少 n / n 到 m 次 | \d{11} |
[...] [^...] |
字符集 / 取反 | [0-9A-F] |
( ) (?: ) |
捕获组 / 非捕获组 | (\d{3})-(\d{4}) |
(?<name> ) |
命名捕获组 | (?<year>\d{4}) |
(?= ) (?! ) |
先行断言 正 / 负 | \d+(?=元) |
Q:这里的结果和 Python / PHP 一致吗?
A:不一定。本工具用的是 JavaScript 正则引擎,和 PCRE(PHP、Python 的 re)在断言、\p{}、命名组语法、$ 行为等细节上有差异。用于其它语言时以目标语言的引擎为准。
Q:没勾 g 也列出了所有匹配?
A:匹配列表和高亮为了展示完整,会内部按全局跑一遍。替换模式则严格按你勾的修饰符执行:没勾 g 只替换第一个。
Q:为什么有的匹配显示 ∅?
A:那是零宽匹配(匹配到空字符串,如 a* 在无 a 处),工具会标出位置并自动前移避免死循环。
Q:能匹配换行吗?
A:默认 . 不匹配换行,勾 s 后可以;^ $ 默认匹配整串首尾,勾 m 后匹配每行首尾。
Q:文本会上传吗? A:不会。匹配和替换都在你的浏览器里完成。
相关:正则代码生成 · 文本对比 · Escape 编解码 · 字符计数 · JSON 工具。