我对编程有点陌生,所以如果这非常明显(这将是一个受欢迎的消息),请原谅我。
我在空闲时间使用 pregmatch 进行大量 PHP 开发,并使用免费(开源?)Regex Tester 编写大部分表达式。
然而,我经常发现自己只想快速提取一些东西,而我知道的唯一方法就是写下我的表达,然后编写脚本,这可能很可笑,但欢迎来到我的现实。 :-)
我想要的是一个简单的文本编辑器,我可以将我的表达式提供给它(给定一个文件或一个充满粘贴文本的缓冲区)并让它解析表达式并返回一个只有结果的文档。
我发现的通常是正则表达式搜索/替换函数,就像在 Notepad++ 中一样,我可以使用表达式轻松找到(并替换)所有实例,但我根本不知道如何只提取它...
而且它可能非常明显,表达式只能匹配逆吗?然后我可以使用类似的东西(只是我目前正在处理的表达式):
<a href="/browse/0/b/-dbm/a/0-0/1200000([^/]*)/0.html">([^<]*)</a>
并替换所有不匹配的内容。但我确信这是常见且简单的事情,我真的很感激任何 poniters。
FWIW我知道grep,我可以用它来做,但我希望他们是更好的gui'ified解决方案,我只是一无所知。
谢谢。
扎克
我所希望的是可以在更标准的 gui 工具集(即我可能已经在使用的工具)中工作的东西。我感谢所有的回复,但我希望避免使用 perl 或 vi 或 grep,否则我会自己编写脚本(当然我这样做了),因为它们都是相对强大的低级工具。
可能是我说的不够清楚。作为一名高级系统管理员,cli 工具对我来说很熟悉,我非常喜欢它们。在家工作,但是我发现我的大部分时间都花在了 gui 上,比如 Netbeans 或 Notepad++。我只是想有一种简单的方法可以使用这些工具实现基于正则表达式的数据提取(因为在这些情况下我已经在使用它们了)。
像我所指的那样模糊的东西是 this这将在第一行采用一个表达式,在第二行采用一个 url,然后提取(返回)数据。
它很难看(我今晚之后将其取下,因为它可能充满了问题)。
无论如何,感谢您的回复。我很感激。
最佳答案
如果你想要一个具有良好正则表达式支持的文本编辑器,我强烈推荐 Vim。 Vim 的正则表达式引擎是 quite powerful并很好地集成到编辑器中。例如
:g!/regex/d
这表示删除缓冲区中与模式不匹配的每一行
regex
.:g/regex/s/another_regex/replacement/g
这在匹配
regex
的每一行上说, 再次搜索/替换以替换匹配的文本 another_regex
与 replacement
.如果你想使用命令行
grep
或 Perl/Ruby/Python/PHP one-liner 任何其他工具,您可以通过该工具过滤当前缓冲区的文本并更新缓冲区以反射(reflect)结果::%!grep regex
:%!perl -nle 'print if /regex/'
关于regex - 文本编辑器中的正则表达式提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/683905/