正则表达式学习:匹配并且符合一定条件

在工作中看到的一段常用的正则
更新于: 2022-02-10 07:01:39

需求

从目标字符串中得到文件名,只要 .png.zip, .mp3,.swf 结尾的文件名列表

先看一下目标字符串

[
    "http://kly.demo.com/4bf0d288f57470d7ec75745b796c15fe496323f7cbe8e99f7fea6175d046b1c7.png",
    "http://kly.demo.com/4bf0d288f57470d7ec75745b796c15fe496323f7cbe8e99f7fea6175d046b1c7.png",
    "http://kly.demo.com/736cbf1056b1eaa18d2598f22ae332456b94846e01f3fc27dc3c25ac239fc257.mp3",
    "http://kly.demo.com/69c0af2bd3b1e3ee5f12b324d27f5e1796207ad95a607a5c16a5b0fdcb1b0b03.mp3",
    "http://kly.demo.com/4da41e93282bfb8eb6ff3110e78f720c9e0bc06e54b2240a111c8caca4a8e12f.mp3",
    "http://kly.demo.com/749ff106e7a6bc5ff50a8f21c6d2bdda4dc26e3b8d0972f9528cf990e7d5fe3c.swf",
    "http://kly.demo.com/5de616972d97eec2eeda4e125858ca2f24c25037a332636e629985d932310e73.mp3",
    "http://kly.demo.com/997d75c3e41c66a92c3fa5214f7cd5720c04e2e834a0ca29f084141862d0b597.png.zip"
]

正则

(\w{64})\.(?:swf|zip|png\.zip|mp3)

小提示

  1. \w{64} 这个是得到文件名
  2. 后面是后缀条件
  3. (?: 这个是只定位,不匹配,是正则优化的一种方式

参考