Regex相当于在windows10中查找所有mp3和mp4文件,但不查找.avi

Regex相当于在windows10中查找所有mp3和mp4文件,但不查找.avi,regex,windows,search,windows-10,Regex,Windows,Search,Windows 10,我在windows操作系统中对mp3文件使用了一些命名约定,我希望找到所有包含“xyz”但不包含“abc”的歌曲。在windows中是否有任何与正则表达式等效的方法可以执行此操作?我对此进行了一些研究,显然,findstr虽然能够在windows上执行正则表达式搜索,但不支持查找。这一点很重要,因为而不是“abc”需求最好使用lookaround来满足。这是一个正则表达式,它将匹配您想要的文件名 我在这里提供了一个基于Linux的解决方案,可以在Windows上运行。下面是一个与您想要的文件名匹

我在windows操作系统中对mp3文件使用了一些命名约定,我希望找到所有包含“xyz”但不包含“abc”的歌曲。在windows中是否有任何与正则表达式等效的方法可以执行此操作?

我对此进行了一些研究,显然,
findstr
虽然能够在windows上执行正则表达式搜索,但不支持查找。这一点很重要,因为
而不是“abc”
需求最好使用lookaround来满足。这是一个正则表达式,它将匹配您想要的文件名

我在这里提供了一个基于Linux的解决方案,可以在Windows上运行。下面是一个与您想要的文件名匹配的正则表达式:

^(?!.*abc).*xyz.*\.mp(?:3|4)$

在Linux中,您可以尝试以下
查找

find | grep -P '(?!.*abc).*xyz.*\.mp(?:3|4)'

有很多工具可以在Windows上模拟Linux,比如Cygwin。我相信Git bash也支持一些Linux命令。

我对此进行了一些研究,显然,
findstr
,虽然能够在Windows上进行正则表达式搜索,但不支持lookarounds。这一点很重要,因为
而不是“abc”
需求最好使用lookaround来满足。这是一个正则表达式,它将匹配您想要的文件名

我在这里提供了一个基于Linux的解决方案,可以在Windows上运行。下面是一个与您想要的文件名匹配的正则表达式:

^(?!.*abc).*xyz.*\.mp(?:3|4)$

在Linux中,您可以尝试以下
查找

find | grep -P '(?!.*abc).*xyz.*\.mp(?:3|4)'

有很多工具可以在Windows上模拟Linux,比如Cygwin。我相信Git bash还支持一些Linux命令。

谢谢,我一直在寻找在文件资源管理器中搜索的方法。。否则,我正在windows应用商店中寻找一个应用程序作为文件资源管理器的附加组件。。否则,我可以用良好的GUI构建新的应用程序来构建正则表达式并使用它来搜索文件。我刚刚在app store中搜索了“regex”和“过滤文件”。没有用。@Shivakumar有一个更大的问题,你不仅需要正则表达式,你可能还需要PCRE正则表达式,这甚至是Windows的
findstr
都不支持的。如果我是你,我会用Cygwin这样的工具进行搜索。我们也可以用Cygwin启动vlc播放器,将所有过滤过的文件添加到vlc播放器中吗?我不确定Cygwin是否支持select->drag->drop GUI功能可能不支持。现在我看到你的要求比最初看起来的要大。您可以编写一个小的.NET代码来相当轻松地处理这个问题(或者Java)。。否则,我正在windows应用商店中寻找一个应用程序作为文件资源管理器的附加组件。。否则,我可以用良好的GUI构建新的应用程序来构建正则表达式并使用它来搜索文件。我刚刚在app store中搜索了“regex”和“过滤文件”。没有用。@Shivakumar有一个更大的问题,你不仅需要正则表达式,你可能还需要PCRE正则表达式,这甚至是Windows的
findstr
都不支持的。如果我是你,我会用Cygwin这样的工具进行搜索。我们也可以用Cygwin启动vlc播放器,将所有过滤过的文件添加到vlc播放器中吗?我不确定Cygwin是否支持select->drag->drop GUI功能可能不支持。现在我看到你的要求比最初看起来的要大。您可以编写一个小的.NET代码来相当轻松地处理这个问题(或者Java)。