OSX 使用正则表达式查找标准文件结尾

OSX 使用正则表达式查找标准文件结尾

我试图查找所有具有相当标准文件格式的文件(Wordpress 自动创建的所有重复媒体类型)。使用正则表达式,我能够相当快地将一些东西组合在一起。但是,OSX find regex 与 regexr 不能很好地混合使用(默认情况下使用 javascript,但可以使用 PHP 模式匹配)。

我想知道如何将其适应 Mac OSX BSD 样式的正则表达式匹配。我已经研究这个问题一段时间了,我希望得到一些专家的指导。具体来说,我在数字范围方面遇到了麻烦,即允许 1 到 4 位数字之间用 x 分隔。

我可以使用以下 egrep 来完成这项工作,但找不到:

ls | egrep "\d{1,4}x\d{1,4}\.(png|gif|jpg)$"

我尝试查找的文件格式:

location-948510_1280-1024x1024.png
location-948510_1280-10x10.png
location-948510_1280-50x300.png
location-948510_1280-4x29.png

需要省略的一点(作为示例):

location-948510_1280.png

我正在尝试使用的查找正则表达式:

find -E . -regex '.*\-\d{1,4}x\d{1,4}\.(png|gif|jpg)$'

regexr 上的模式匹配示例:

regexr 上的正则表达式

答案1

我在写这个问题的时候想到了这一点(我橡皮鸭显然是我自己)

最终完美地完成了工作:

find -E . -regex '.*\-[0-9]{1,4}\x[0-9]{1,4}\.(png|gif|jpg)$'

答案2

在所需数字前使用\D“不是数字”的意思:

find -E . -regex '.*\D\d{1,4}x\d{1,4}\.(png|gif|jpg)$'
//           here __^^

相关内容