← 返回工具列表

正则表达式测试

实时测试 JavaScript 风格的正则。输入即匹配,高亮所有命中,列出捕获组(含命名)。 可切换 i / g / m / s / u 标志,附常用模式速查表。所有处理本地完成。

使用说明 / 常见问题

支持哪种正则方言

JavaScript 内置的 RegExp。和 PCRE / Python re 大部分语法兼容,但有差异:

  • JS 不支持 lookbehind 的可变长度(v2018 已部分支持)
  • JS 不支持递归引用((?R)
  • JS 用 (?<name>...) 表示命名分组
标志含义速查
  • i:大小写不敏感
  • g:全局匹配(找所有命中,不是只找第一个)
  • m:多行模式,^ / $ 匹配每行的开头 / 结尾
  • s:dotall,. 也匹配换行符
  • u:Unicode 模式,正确处理代理对(emoji 等)
常用模式速查
  • 邮箱(粗略):\\b[\\w.+-]+@[\\w-]+\\.[\\w.-]+\\b
  • 中国大陆手机:1[3-9]\\d{9}
  • URL:https?://[\\w.-]+(?:/[\\w%./?=&-]*)?
  • IPv4:\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b
  • 日期 YYYY-MM-DD:\\d{4}-\\d{2}-\\d{2}
为什么我的正则报错"Invalid escape"

JS 正则字面量里 \\(反斜杠)要写成 \\\\。 但如果你是在输入框里直接输入,不要双写—— 浏览器输入的 \\d 就是 \\d,不需要再加反斜杠。 报"Invalid escape"通常是用了不存在的转义字符(如 \\q)。