我迫切地想找到文件夹及其子目录中包含一个点的所有文件。阅读 findstr 的文档后,我想出了这种正则表达式,但它仍然匹配所有包含点的文件名。据我理解,我构建的正则表达式应该是:“除点之外的任何字符,然后需要一个点,然后再次除点之外的任何字符。”
where /r directory *.* | findstr /irc:"[^\.]*\.[^\.]*"
我知道我可以安装 grep,但我想要一个开箱即用的解决方案。
答案1
好的,我自己找到了解决方案。
[class]*
当文件名中至少有一个(而不是正好一个)点时,此表达式就会匹配零次或多次。
为了使其精确匹配,必须指定点的位置。在我的例子中,我只需添加位置说明符“^”(行首)和“$”(行尾),这样现在正则表达式就翻译成了“在行首和行尾之间只有一个点的行”
where /r directory *.* | findstr /irc:"^[^\.]*\.[^\.]*$"