开发辅助

正则表达式测试

测试和调试正则表达式,支持多种标志和模板

正则表达式
//
✨ AI 辅助生成 (Cloudflare Workers AI)
测试文本
常用模板

什么是正则表达式?

正则表达式(Regular Expression,简称 Regex)是一种强大的文本匹配模式,用于在字符串中搜索、匹配和替换特定的文本模式。它广泛应用于编程、文本处理和数据分析中。

常用标志(Flags)

  • g (global):全局匹配,找到所有匹配项而不仅仅是第一个
  • i (ignoreCase):忽略大小写
  • m (multiline):多行模式,^ 和 $ 匹配每行的开始和结束
  • s (dotAll):让 . 匹配包括换行符在内的所有字符
  • u (unicode):启用 Unicode 支持
  • y (sticky):粘性匹配,从上次匹配的位置开始

常用元字符

  • . - 匹配除换行符外的任意字符
  • d - 匹配数字 [0-9]
  • w - 匹配字母、数字、下划线 [a-zA-Z0-9_]
  • s - 匹配空白字符
  • ^ - 匹配字符串开头
  • $ - 匹配字符串结尾
  • * - 匹配前一个字符 0 次或多次
  • + - 匹配前一个字符 1 次或多次
  • ? - 匹配前一个字符 0 次或 1 次
  • [abc] - 匹配 a、b 或 c 中的任意一个
  • (abc) - 捕获组,匹配 abc 并保存为组

使用场景

  • 表单验证:邮箱、手机号、身份证号等格式校验
  • 文本搜索:在大量文本中查找特定模式
  • 数据提取:从文本中提取结构化数据
  • 文本替换:批量替换符合特定模式的文本
  • 日志分析:解析和分析日志文件

常见问题

这个测试器用的是哪种正则方言?
JavaScript(ECMAScript)正则,与 Node.js 和浏览器中实际运行的完全一致。现代引擎支持后行断言等特性;但其他方言的结构(例如不带 u 标志的 \p{...})行为可能不同。
为什么 .* 匹配到的内容比预期多?
量词默认是贪婪的:.* 会先吃掉尽可能多的字符再回退。改用懒惰量词 .*?,或用否定字符类(如 [^"]*)在第一个分隔符处停下。
正则表达式在生产环境会有风险吗?
有。嵌套量词(如 (a+)+$)在恶意输入上可能引发灾难性回溯(ReDoS)。用较长的对抗性样本做测试,并尽量让正则带锚点。