【发布时间】:2018-03-21 00:45:42
【问题描述】:
目的
该 RegEx 的目的是在 Sublime Text 3 支持正则表达式的“文件搜索”功能上使用它。
目标
我的目标是实现在特定文件名上查找特定完整单词的搜索,一个优点是文件名被定义为文件本身内部的字符串,所以它可能会使事情变得更容易。
我的扣除
我在考虑如何执行它,我意识到如果我可以创建一个在同一个文件中搜索两个完整单词的正则表达式,它就解决了我的问题,因为文件名也在文件中。
示例:
我有许多名为
ListaController的文件,我只想找到其中包含requires:的文件。
ListaController是我要搜索的文件的名称。
requires:是我想找到ListaController's 的 insile 文件的词
所以我需要一个可以在同一个文件上匹配(ListaController 和requires:)的正则表达式,以仅显示两个单词匹配的文件。
我尝试过的
我最接近的是 RegEx:
\bListaController\b|\brequires:\b
这导致我只有ListaController 整个单词的结果,而没有requires: 的结果。
所以我需要一些帮助来创建适合的正则表达式。
Obs:如果有一个更简单/更好的解决方案可以在不使用正则表达式的情况下在 sublime 上执行我想要的操作,我将不胜感激,也许这将是我的最终解决方案。
【问题讨论】:
-
Searching 9563 files for "\bListaController\b|\brequires:" (regex)... 结果是具有requires:而不是ListaControllers 的文件 -
那么你真的想找到里面有
ListaController和requires:的文件,或者你想找到里面有ListaController和requires:的文件?你说过 “我有很多名为 ListaController 的文件,我只想找到那些需要的文件:在其中。” 和 “所以我需要一个可以在同一个文件上匹配(ListaController 和需要:) 的正则表达式“ -
您不能在 where 字段中使用正则表达式,因为它只接受不支持单词边界的 glob 模式。因此,您需要在正则表达式字段中使用
\brequires:正则表达式,并且在 where 字段中,您可以使用类似* ListaController *的内容来检查在空格内包含单词的文件,然后是任何其他搜索词周围可能的特殊字符组合。 -
@David 很抱歉这句话令人困惑,但请看,它们都解决了我的问题,“
ListaController和requires:都在里面;”和“名为ListaController的文件,其中包含includes:。”解决我的问题的原因是我的文件名为ListaController的名称在它们的第一行定义为字符串。看看为什么这两种方法可以解决我的问题? -
好的,那么您仍然可以使用
(?s)^(?=.*?\bListaController\b)(?=.*?\brequires:)- 它会在包含整个单词ListaController和requires:的任何文件中找到匹配项。
标签: regex search sublimetext3