【问题标题】:How to use Sublime Text's "Find in Files" to find files containing multiple different strings?如何使用 Sublime Text“在文件中查找”查找包含多个不同字符串的文件?
【发布时间】:2016-02-29 13:00:01
【问题描述】:

我在一个文件夹中有string1string2 以及一堆文本文件。这些文件可能包含任意数量的string1string2

有没有办法使用 Sublime Text 的“在文件中查找...”实用程序来查找所有包含至少一个出现每个的文件?

查看主题我已经能够找到一种方法来搜索or of multiple strings(即匹配任何一个都匹配整个文件),但我想要做的是一个 and。另一方面,使用this answer 中建议的非消耗正则表达式在 Sublime Text 2 中似乎不起作用(总是产生零匹配)。

【问题讨论】:

  • 使用交替:string1|string2
  • @WiktorStribiżew 这是我不想要的一个例子。我什至把它放在问题中(第一个链接)。
  • 那么你应该删除每个至少出现一次,这是误导。你需要(?s)string1.*string2|string2.*string1(?s)^(?=.*string1)(?=.*string2)
  • 我认为将“每个”与“至少一个”分开强调是很清楚的。我会想办法重新措辞。

标签: regex sublimetext2 sublimetext


【解决方案1】:

此 RegEx 模式将使您能够找到包含每个字符串查询的文件: (string1[\s\S]*string2)|(string2[\s\S]*string1)

[\s\S]* 用于根据需要多次匹配任何字符(包括换行符),直到找到以下字符集。

【讨论】:

  • [\s\S]*? 将通过使用以下字符集的第一个实例(而不是最后一个实例,如果省略 ?)来进一步提高搜索效率。
猜你喜欢
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多