【发布时间】:2016-09-25 11:59:59
【问题描述】:
我有以下在 php 中运行良好的正则表达式模式
/(^((?!thumb).)*\.jpg)/
我的任务是在 bash 中翻译这个正则表达式,想法是从文件路径中不包含 thumb 单词的目录中(递归)查找所有 .jpg 文件。
我使用这样的结构:
find /folder/path -regex '(^((?!thumb).)*\.jpg)'
但我的结果为零?我在 bash 中的正则表达式有问题吗?
【问题讨论】:
-
试试
find /folder/path -regextype posix-extended -iregex '^((?!thumb).)*\\.jpg' -
@ThomasAyoub 没有任何正则表达式类型支持仅 PCRE 功能。
-
我收到了
Invalid preceding regular expression -
@AlexandruOlaru 以不同的方式重申我的上述评论,您不能将 PCRE 正则表达式与 find 一起使用。
-
一般建议:不要试图将正则表达式风格“翻译”成另一种风格(用一种语言编写的代码与用另一种语言编写的代码相同)。如果你这样做,你会头疼并得到不好的结果。好的方法是:“模式/代码是什么?” (相对于“它是如何编写的?”或“使用什么技术?”) =>“如何使用这种语言/正则表达式风格/工具获得相同的结果?”