在Sublime Text 2中搜索包含“Mickey”但不包含“Mouse”的文件

时间:2013-07-03 12:53:19

标签: regex sublimetext2

是否可以在Sublime Text 2中搜索包含'Mickey'的文件

但不包含'Mouse'

正则表达式可能吗?但他们会是什么?

3 个答案:

答案 0 :(得分:7)

是的,您可以使用正则表达式执行此操作,使用negative lookahead expression

打开搜索Ctrl-Shift-F

确保使用正则表达式Alt-R

进行搜索
Mickey(?! Mouse)

会返回“Mickey”所有未跟随“Mouse

的实例

注意确保在 Mouse之前加入空格!

答案 1 :(得分:2)

您使用此特定文本编辑器的事实是否非常重要?就个人而言,我只是使用grep来做。类似的东西:

grep -l Mickey filename | xargs grep -L Mouse

说明:

-l选项表示“打印包含匹配项的文件名,而不是匹配的行”。

xargs将这些匹配的文件名传递给下一个grep命令。

-L选项表示“打印不包含匹配项的文件名,而不是匹配的行”。

然后,您可以同时在多个文件上运行此命令 - 可能通过向第一个grep添加-r(“递归”)选项。

答案 2 :(得分:1)

我尝试了Smandoli提供的正则表达式,但它确实崩溃了Sublime Text 2

可能是我添加的Sublime个插件之一的问题,我根本就不知道。

我想使用Sublime进行搜索的原因是我正在处理一个包含超过一千个文件的相当大的项目。所以我想在项目中搜索包含特定字符串('Mickey')的文件。如有必要,编辑文件并添加单词Mouse。然后我可以“刷新”搜索,现在将省略我刚刚编辑的文件,因为它不再符合搜索条件。这是一个合理的工作流程。

    Note: The strings are not actually Mickey and Mouse, I just used those to illustrate 
the problem. I don't work for Disney :)

由于regex提供的Smandoli崩溃Sublime,我还尝试了grep提供的Tom Lord命令(我正在{{1}上运行})但是看不到只定位具有特定扩展名(Windows 7

的文件的方法

最后我写了一个小*.asp脚本,似乎可以解决这个问题:

Powershell