Gab*_*iel 5 regex search sublimetext sublimetext3
我这个以前的(类似)的问题在与崇高3几个文件多串的搜索是回答一个办法来搜索在SublimeText多个文件多串,用正则表达式OR运算符:
Find: (string1|string2)
Where: <open folders>
Run Code Online (Sandbox Code Playgroud)
这完全适用于搜索文件,其中任一 string1或string2存在.我现在需要的是在大量文件中搜索两个字符串.即,我需要使用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)
应该触发一场比赛.
打开sublime文本并按
Shift+ Ctrl+F
或单击Find in Files选项Files卡下的选项.以上是此选项的键盘快捷键.按上方键时,这些是以下选项
当您...从上面选择按钮时,您会得到6个选项,Add Folder或者是Add Open Files或Add 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右侧.
这是我得到的输出
查看线路的背景颜色的差异1315和1316(在左侧显示).1316在designation文件中匹配行
这是最后一部分的图像
我使用这个正则表达式时共打开了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)