【问题标题】:Regexp: match and exclude正则表达式:匹配和排除
【发布时间】:2013-08-14 14:10:48
【问题描述】:

在此列表中:

  • image_1.png
  • image_1_small.png
  • image_2.png
  • image_2_small.png
  • image_three.png
  • image_three_small.png
  • antoher_image.png

我只想匹配那些以单词 image 开头但不包含单词 small 的图像。

然后正则表达式应该返回:

  • image_1.png
  • image_2.png
  • image_three.png

到目前为止我有:

/^image(?!.*small)/m

【问题讨论】:

  • 哪种语言?还有什么问题?
  • 您的正则表达式有效。我对其进行了一些更改,以便您获取整个文件名:RegexPal
  • @HamZa 我注意到你一直在使用(?!.*small),为什么.* 在small 之前? (?!small) 还不够吗?
  • @Sniffer (?!small) 只会阻止“imagesmall”匹配。它仍然会匹配“image_1_small”。
  • @Robit:我正在使用 cakephp 文件夹 api (book.cakephp.org/2.0/fr/core-utility-libraries/file-folder.html) 来列出文件。它返回空值。

标签: regex


【解决方案1】:

我用列表中的单行测试了这个

 ^image(?!.*_small.*).*\.png$

另请参阅discussion,了解如何在正则表达式中排除关键字

【讨论】:

    猜你喜欢
    • 2022-12-11
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多