我试图查找所有具有相当标准文件格式的文件(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 上的模式匹配示例:
答案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 __^^