我经常使用Sublime Text中的搜索功能来搜索文件夹 - 由于代码缩小,base64编码数据或证书,这些文件夹中的一些包含极长的行(1000个字符长)。
搜索结果经常会回来看起来如下(这在视觉上既令人讨厌,又在较短的字符串上给我意外的匹配):
有没有办法可以从搜索结果中省略大于特定长度的行?
答案 0 :(得分:1)
你可以使用负面的预测和负面的语法背后来实现你的目标(在一定程度上)。
假设您不想在搜索单词MATCH时包含超过50个字符的任何行,以下正则表达式将起作用(?<!.{46})MATCH(?!.{46})
场景(前4行产生匹配,以下3行不产生)
xxxxxxxxxxxxxMATCHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx50
MATCHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx50
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMATCH
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMATCHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx95
MATCHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx51
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMATCH
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMATCHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx96
在此示例中,返回结果集中包含的最长行的长度为95个字符,因为在MATCH之前和之后有45个字符。所以不完美但很接近,为了您的目的,我相信它会排除那些超长编码数据。
您可以调整背后的长度并向前看以获得您所追求的结果。