求一款正则表达式工具

本人从事电商行业,这行业经常要搞很多数据之类的,比如我就经常需要从整个erp(B/S架构)页面提取出来上百个淘宝的订单号,这时候虽然可以导出表格然后整列复制,但是那毕竟慢,要是能用上正则表达式就实在太好了.

我的需求如下:

  1. 可以保存写好的表达式供调用
  2. 可以根据表达式然后在一大段文本里匹配出结果后把结果单独归纳出来,比如匹配出了100个,希望能把100个直接单独显示出来,并且需要能复制出来
  3. 显示匹配结果的数量

我目前在用textforever,这软件总体符合需求,但是它有个致命问题:同样的表达式和源文本,它匹配出来的结果数量不对,我本来以为是我写错了,后来同样的表达式在regester里匹配的结果是对的,上百个订单号排查起来太难了,所以我不得不找个别的软件来试试

regester不能保存多个表达式,只能有一个,并且没有直观的统计匹配出多少个结果,必须点进结果树拖到最下边查看匹配数量

我还用过Regex Match tracer,这软件主要作用在于调试表达式,我没有发现它怎么样操作把所有匹配结果提取出来,全部匹配的时候只是在原文本里把匹配的结果高亮显示

工具的话,用各种语言去写一点点代码就可以解决。

结果数量不对,可能是正则语法的问题,因为在不同语言下正则语法是有区别的,支持程度也不一样。

然后我觉得这个需求有可能是一个伪需求,不过你并没有将实际使用场景描述的很清晰,我只能进行猜想。

比如在一个页面中提取淘宝订单号,这个工作可以书写一个小书签来完成,用起来更加方便一点。毕竟你后面说的这些都是软件吧?那是不是还要把页面的内容复制到软件里,再进行查找。

如果方便,希望可以描述一下实际的使用场景,也许大家可以提供出不一样的思路来。

显示出匹配的全部结果的软件有,能复制的感觉没有。自己写个呗。或者按我个思路,把正则写成不匹配的行,正则替换掉,剩下的就是匹配的结果了。
搭车问下有没有格式化json数据,并且能方便写一个表达式显示出全部匹配结果的(最好能直接设置展开层级)。

这个用纯文本编辑器就可以做到吧,比如sublime可以选中所有的匹配项,然后你想复制还是什么都可以继续操作。

半角标点符号看起来好累啊

python呀

这款是我经常用的
regexr.com

国人弄的中文版,不过有些错误
regexr-cn.com

1 个赞

EmEditor 的查找替换,支持提取匹配的项、所有行,也支持保存条件。

正则搜索ag.exe
复制clip.exe
json格式化jq.exe

EmEditor的保存批处理确实挺合适的,此外也可以用Ditto之类的保存剪贴板历史的软件保存写好的表达式。

工作原因经常使用erp软件,各种分隔符号之类的都不支持中文符号,懒得来回切换所以就直接中文输入下使用半角符号了,我现在用自己电脑回复你的,符号就是全角的

原来这样。

这 erp 不合格啊 :joy:

用你的方案确实可以做到,不过sublime没有很方便的保存查找条件的功能,只提供了下拉,我用editplus配合楼上说的替换掉不符合规则的文本,然后重新查找符合条件的文本(之所以这么麻烦是因为editplus查找窗口不支持保存查找条件,查找和替换窗口才有)也可以做到

准备一个txt文档记录常用的模式就行了吧,相比集成到搜索里,效率也不会差太多,如果对这个实在有需求,可以研究一下怎么写sublime的插件,或者如果你只会用到固定的几个模式,也有很多其他的办法,比如挑一种语言把你的需求写成脚本,又或者是用ahk的hotstring之类的功能给模式绑定一些快捷键,总之方法有很多。