在Textpad或Notepad ++中,是否可以将正则表达式查找的所有匹配项导出为单个列表?
在一个大文本文件中,我正在使用正则表达式搜索标签(用%%括起来的单词),%\< and \>%
并将所有匹配项都列为一个列表,以便可以使用Excel删除重复项并获得唯一标签列表。
在Textpad或Notepad ++中,是否可以将正则表达式查找的所有匹配项导出为单个列表?
在一个大文本文件中,我正在使用正则表达式搜索标签(用%%括起来的单词),%\< and \>%
并将所有匹配项都列为一个列表,以便可以使用Excel删除重复项并获得唯一标签列表。
Answers:
您可以通过在Notepad ++中使用反向引用以及“查找和标记”功能来实现。
使用正则表达式(例如%(.*?)%
)找到匹配项,然后将其替换为\n%\1%\n
,之后我们将目标词放在单独的行中(即,没有一行将有多个匹配词)
使用Search-> Find-> Mark功能用正则表达式标记每一行,%(.*?)%
并记住在标记文本之前勾选“ 书签行 ”
在 Notepad ++中这样做是强制性要求吗?您使用Windows还是某种形式的Unix?如果您使用的是Windows,则可以从命令提示符处(部分)执行此操作:
findstr / r“%[az]。* [az]%%[az]%” your_file > new_file
findstr
受到的启发grep
,因此此new_file
将包含与您的搜索条件匹配的所有行;然后,您可以使用Notepad ++去除不需要的文本(在第一个%的左侧和第二个%的右侧)。
而且,当然,如果您使用的是Unix,则可以使用进行等效的任务sed
。
有一个Notepad ++插件,可以将匹配的正则表达式复制到新选项卡中的新文件中。 正则表达式提取
因为我没有找到任何可以从当前文档中提取文本或使用其他设置(例如大小写转换)从某个位置提取所有文件的Notepad ++插件,所以我决定尝试自己制作。(...)插件界面非常简单(...)。(...)“查找”,“替换”和“蒙版”字段使用C ++ 11 regex语法。从文件中提取仅适用于UTF8中的文件。
针对问题量身定制的“ 编辑对话框”输入
在图像中,您可以看到如何填写对话框。我假设一个单词不包含空格等,仅包含\ w匹配的字符。值得注意的是:
在TextPad中,您将Find
照常调出框,然后使用Mark All
按钮。
从那里开始使用Copy Bookmarked Lines
功能。(编辑菜单>复制其他>书签行。)