使用AND在Sublime 3中搜索多个文件中的多个字符串

Gab*_*iel 5 regex search sublimetext sublimetext3

我这个以前的(类似)的问题在与崇高3几个文件多串的搜索回答一个办法来搜索在SublimeText多个文件多串,用正则表达式OR运算符:

Find: (string1|string2)
Where: <open folders>
Run Code Online (Sandbox Code Playgroud)

这完全适用于搜索文件,其中任一 string1string2存在.我现在需要的是在大量文件中搜索两个字符串.即,我需要使用AND运算符.

我环顾了这个问题正则表达式:是否有AND运算符?还有这一个Regex AND运算符,并提出了以下配方:

(?=string1)(?=string2)
(?=.*string1)(?=.*string2)
(string1 string2)
(string1\&string2)
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.

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

(我正在使用SublimeText 3103)

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

string1 dfgdfg d dfgdf

sadasd
asdasd

dfgdfg string2 dfgdfg
Run Code Online (Sandbox Code Playgroud)

应该触发一场比赛.

roc*_*987 7

打开sublime文本并按

Shift+ Ctrl+F

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

在此输入图像描述

当您...从上面选择按钮时,您会得到6个选项,Add Folder或者是Add Open FilesAdd Open Folders

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

使用以下正则表达式进行and操作

(?=.*string1)(?=.*string2)
Run Code Online (Sandbox Code Playgroud)

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

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

而我正在寻找 current open files

在此输入图像描述

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

这是我得到的输出

在此输入图像描述

查看线路的背景颜色的差异13151316(在左侧显示).1316designation文件中匹配行

这是最后一部分的图像

在此输入图像描述

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

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

使用

(?=[\s\S]*string1)(?=[\s\S]*string2)[\s\S]+
Run Code Online (Sandbox Code Playgroud)

但如果行数增加,它将杀死崇高.

如果您只需要找到两个单词,则与上面相比,以下内容将非常快速地运行

(\bstring1\b[\S\s]*\bstring2\b)|(\bstring2\b[\S\s]*\bstring1\b) 
Run Code Online (Sandbox Code Playgroud)