【问题标题】:Search for multiple strings in several files with Sublime 3使用 Sublime 3 在多个文件中搜索多个字符串
【发布时间】:2014-10-30 14:27:06
【问题描述】:

我知道如何使用 Sublime 3 一次在多个文件中搜索 单个字符串(解释为 here)。

我需要做的是在几个文件中搜索多个字符串。 我试过去Find in files 并设置:

Field:  string1 \& string2
Where: /path_to_folder_containing_the_files_I_want_to_ search/

(其中string1string2 是我要搜索的字符串)但这似乎不起作用。

这能做到吗?

【问题讨论】:

  • Gabriel,我认为你的问题在superuser.com上会更好
  • @samy 为什么?关于Sublime这里有上千个问题,点击标签即可查看。
  • 是的,我同意;对我来说,这看起来像是一个关于通用计算软件的问题,而不是编程 - 所以我认为超级用户上的崇高标签是最合乎逻辑的:superuser.com/questions/tagged/sublime-text-3

标签: sublimetext sublimetext3


【解决方案1】:

刚刚遇到这个老问题,并认为我会添加我的解决方案,这可能对将来的某人有用。

Sublime 支持在所有打开的文件夹中搜索,并且可以使用正则表达式。因此,利用这两者,您可以打开或添加要搜索的所有文件夹到项目中,并使用正则表达式搜索多个关键字。在您的情况下,它将如下所示(确保选中正则表达式框 .* 图标):

Find: (string1|string2)
Where: <open folders>

【讨论】:

  • 在 4 个或更多字符串上使用正则表达式代替 'string1'、'string2' 时,正则表达式崩溃并出现错误:“匹配正则表达式的复杂性超出了预定义的范围。尝试重构正则表达式使状态机做出的每个选择都明确无误。”这与此类搜索有关吗?
  • @john:您可以发布您的示例正则表达式吗?刚刚尝试了简单的 4 个选项,它对我的​​效果很好。
  • 显然我正在对每个单独的字符串进行正则表达式,而不是将整个集合封装为一个整体,这导致了崩溃。例如。我想要这个:^.*(?:string1|string2|string3).*$
【解决方案2】:

我在 Sublime Text2 上试过这个,所以也应该在 Sublime Text3 上工作。

字段:string1 string2 string3 string4 其中:/path_to_folder_ contains_the_files_I_want_to_search/

注意:取消选中“.*”表示正则表达式,选中“”表示查找整个单词。

这将在上述文件夹中的所有文件中搜索模式“string1 string2 string3 string4”。

【讨论】:

    【解决方案3】:

    我用这个:

    检查正则表达式

    Find: (string1.*string2)
    
    Where: *.php
    

    【讨论】:

    • 这只有在文件有both字符串并且按照给定的顺序时才有效。 (此外,在某些正则表达式场景中,点与换行符不匹配……不确定 Sublime 的实现) (或运算符):(string1|string2)
    • 但是如果我想找到两个字符串,我的解决方案就可以了。
    • 如果您想按此顺序找到它们,可以。但是如果一个文件将它们反转:string2...string1,这个解决方案将不匹配。
    猜你喜欢
    • 2016-08-19
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2021-11-04
    • 2012-05-17
    相关资源
    最近更新 更多