← 返回首页

正则表达式测试

功能亮点

实时匹配高亮

输入正则立刻在测试文本中高亮所有匹配项,边写边看效果。

捕获组提取

用小括号 () 分组后,每组匹配内容单独列出,方便提取特定字段。

Flag 开关

一键切换 g(全局)、m(多行)、i(忽略大小写)模式。

替换预览

输入替换文本,预览替换后的效果,满意了再复制正则和替换模式。

使用步骤

  1. 在「正则表达式」框中输入你的正则;
  2. 在「测试文本」框中粘贴待匹配的文本;
  3. 查看高亮匹配结果和捕获组;
  4. 如需替换,在「替换为」框输入替换内容预览效果。

正则表达式为什么难写?

正则是一种「write-only」语言——写的时候觉得逻辑清晰,三天后回来看就像天书。/(?<=\$)\d+(?=¢)/ 这种正则新手看了就想跑。但正则是文本处理的底层通用技能:日志解析、表单校验、数据清洗、爬虫提取——几乎所有涉及文本的编程工作都可能用到它。关键是写正则时有即时反馈——这正是本工具存在的意义。

常见问题

贪婪匹配和懒惰匹配有什么区别?
贪婪匹配(默认)尽可能多匹配。如 /<.*>/<div>hello</div> 中会匹配整个字符串懒惰匹配(量词后加 ?)尽可能少匹配:/<.*?>/ 只匹配 <div>。大多数场景懒惰匹配更符合直觉。
为什么正则在 JS 里能用,Python 里不行?
虽然正则概念通用,但不同语言的正则引擎有差异。JS 不支持后顾断言中的不定长模式;Python re 模块默认不支持 Unicode 属性转义;Ruby 的正则支持嵌入代码。跨语言写正则时,以最受限的目标语言为准。
正则会导致性能问题吗?
会——这就是灾难性回溯。嵌套量词如 /(a+)+b/ 匹配长串 a 字符时,引擎会尝试指数级路径,CPU 瞬间 100%。安全准则:① 避免量词嵌套;② 用具体字符类代替 .;③ 限制待匹配文本的长度。