【问题标题】:Search for multiple strings in several files with Sublime 3 using AND使用 AND 使用 Sublime 3 在多个文件中搜索多个字符串
【发布时间】:2016-08-19 04:25:57
【问题描述】:

我以前的(类似)问题Search for multiple strings in several files with Sublime 3answered,它可以使用正则表达式OR 运算符在SublimeText 的多个文件中搜索多个字符串:

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

这非常适合搜索存在 任一 string1string2 的文件。我现在需要的是在大量文件中搜索两个字符串都存在。即,我需要使用AND 运算符。

我环顾了这个问题Regular Expressions: Is there an AND operator? 和这个Regex AND operator 并想出了以下食谱:

(?=string1)(?=string2)
(?=.*string1)(?=.*string2)
(string1 string2)
(string1\&string2)

但它们都不起作用。

所以问题是:如何使用 SublimeText 一次在多个文件中搜索多个字符串?

(我使用的是 SublimeText 3103)

添加字符串不一定在同一行。它们可以位于每个文件中的任何位置。比如这个文件:

string1 dfgdfg d dfgdf

sadasd
asdasd

dfgdfg string2 dfgdfg

应该触发匹配。

【问题讨论】:

  • 实际上突出显示的是上一场比赛。它对我也不起作用。它只能在当前文件中找到
  • Shift+Ctrl+F 并输入正则表达式。它在那里正确找到
  • 哪个正则表达式?你用什么文件来测试这个?
  • (?=.*string1)(?=.*string2) regex..按下Shift+Ctrl+F,您将获得添加文件夹选项..添加包含所有文件的文件夹..所有匹配项以及文件路径都将显示在一个文件中
  • 如果文件太多,sublime 可以crash

标签: regex search sublimetext3 sublimetext


【解决方案1】:

打开 sublime Text 并按下

Shift+Ctrl+F

或单击Files 选项卡下的Find in Files 选项。以上是此选项的键盘快捷键。当您按上面的键时,这些是以下选项

当您从上方选择 ... 按钮时,您会看到 6 个选项,分别是 Add FolderAdd Open FilesAdd Open Folders

搜索出现在同一行的字符串

为您的and 操作使用以下正则表达式

(?=.*string1)(?=.*string2)

我正在使用以下正则表达式

(?=.*def)(?=.*s)\w+ <-- \w+ will help in understanding which line is matched(will see later)

我正在current open files内搜索

确保启用了Use Buffer 选项(Find 之前的一个)。它将在新文件中显示匹配项。还要确保启用了Show ContextUse Buffer 之前的一个)选项。这将显示匹配的确切行。现在点击右侧的Find

这是我得到的输出

查看13151316 行的背景颜色差异(出现在左侧)。 1316designation 文件中的匹配行

这是最后一部分的图片

当我使用这个正则表达式时,总共打开了 6 个文件

用于在文件中的任何位置查找字符串

使用

(?=[\s\S]*string1)(?=[\s\S]*string2)[\s\S]+

但如果行数增加,它会杀死 sublime。

如果您只需要找到两个单词,那么与上面相比,下面的工作会超级快

(\bstring1\b[\S\s]*\bstring2\b)|(\bstring2\b[\S\s]*\bstring1\b) 

【讨论】:

  • 您使用正则表达式 (?=.*def)(?=.*s) 搜索哪两个字符串?
  • @Gabriel 是的,我正在搜索字符串 def 和字符串 s
  • 尝试在下面的模拟文件pastebin.com/Tq6YJUfC 中搜索(?=.*string1)(?=.*string2) 它将不起作用,但它应该起作用。我不确定你的线路是做什么的,但这不是我需要的。
  • @Gabriel 它正在文件中逐行查找..即string1 和 string2 都应该在同一行
  • 最后两个命令很棒,谢谢!您能否添加命令来执行相同的搜索,但显示找到字符串的大块文件?
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
相关资源
最近更新 更多