如何让正则表达式 'or groups' 像 (foo|bar) 与 find -regex 一起工作? (OS X)

how to get regex 'or groups' like (foo|bar) working with find -regex? (OS X)

假设我想使用正则表达式查找所有 .jpg 和 .png 图像,我正在尝试这样做:

find . -regex ".*\.(jpg|png)"

但它不起作用(没有结果,即使存在 jpg 和 png 文件)。

现在,如果我只使用 jpgpng 而不是 (jpg|png) 部分,它可以正常工作。另外,如果我使用 \(jpg\) 它确实找到了 .jpg 文件,所以显然我必须转义括号(不知道为什么)。但是我无法使 "jpg OR png" 正常工作,转义 | 符号(因此在我的正则表达式中使用 \(jpg\|png\))也不起作用。

仅供参考:我在 OS X Yosemite.

上使用 find

在 OSX find 上使用 -E 选项以启用扩展正则表达式:

find -E . -regex ".*\.(jpg|png)"

根据man find

-E 
   Interpret regular expressions followed by -regex and -iregex primaries as extended 
   (modern) regular expressions rather than basic regular expressions (BRE's).