← 返回首页
正则表达式测试
功能亮点
实时匹配高亮
输入正则立刻在测试文本中高亮所有匹配项,边写边看效果。
捕获组提取
用小括号 () 分组后,每组匹配内容单独列出,方便提取特定字段。
Flag 开关
一键切换 g(全局)、m(多行)、i(忽略大小写)模式。
替换预览
输入替换文本,预览替换后的效果,满意了再复制正则和替换模式。
使用步骤
- 在「正则表达式」框中输入你的正则;
- 在「测试文本」框中粘贴待匹配的文本;
- 查看高亮匹配结果和捕获组;
- 如需替换,在「替换为」框输入替换内容预览效果。
正则表达式为什么难写?
正则是一种「write-only」语言——写的时候觉得逻辑清晰,三天后回来看就像天书。/(?<=\$)\d+(?=¢)/ 这种正则新手看了就想跑。但正则是文本处理的底层通用技能:日志解析、表单校验、数据清洗、爬虫提取——几乎所有涉及文本的编程工作都可能用到它。关键是写正则时有即时反馈——这正是本工具存在的意义。
常见问题
- 贪婪匹配和懒惰匹配有什么区别?
- 贪婪匹配(默认)尽可能多匹配。如
/<.*>/在<div>hello</div>中会匹配整个字符串。懒惰匹配(量词后加 ?)尽可能少匹配:/<.*?>/只匹配<div>。大多数场景懒惰匹配更符合直觉。 - 为什么正则在 JS 里能用,Python 里不行?
- 虽然正则概念通用,但不同语言的正则引擎有差异。JS 不支持后顾断言中的不定长模式;Python re 模块默认不支持 Unicode 属性转义;Ruby 的正则支持嵌入代码。跨语言写正则时,以最受限的目标语言为准。
- 正则会导致性能问题吗?
- 会——这就是灾难性回溯。嵌套量词如
/(a+)+b/匹配长串 a 字符时,引擎会尝试指数级路径,CPU 瞬间 100%。安全准则:① 避免量词嵌套;② 用具体字符类代替.;③ 限制待匹配文本的长度。