You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文本中精准提取带特定路径与扩展名的多个文件名?

正则提取多文件路径的修正方案

问题根源在于原正则里的.*是贪婪匹配——它会从第一个/uploads开始,尽可能匹配到最远的扩展名结尾,最终只输出一条超长结果。要实现匹配「最近的扩展名」、提取3个独立文件路径的需求,可通过以下两种方式修正:

方法一:改用非贪婪匹配

把正则中的.*替换为.*?,让匹配逻辑从「尽可能长」变成「尽可能短」,遇到第一个符合的扩展名就停止匹配:

/uploads.*?\.(jpg|jpeg|png|gif)

注:若需避免匹配file.jpgxyz这类带多余后缀的情况,可在扩展名后加\b(单词边界)进一步限制,比如/uploads.*?\.(jpg|jpeg|png|gif)\b

方法二:精准限定匹配范围

用[^.]*替代.*,匹配任意非点号的字符,这样只会锁定当前路径内的文件名部分,不会跨到下一个文件路径:

/uploads[^.]+\.(jpg|jpeg|png|gif)

这种方式比非贪婪匹配更高效,因为它明确限定了匹配边界,减少正则引擎的回溯操作。

效果验证

用修正后的正则匹配示例文本:

sometext /uploads/01/03/file.jpgmoretext and then some /uploads/44/93/anotherfile.png and yet /uploads/03/26/somefile.jpg

将得到3个独立的匹配结果:

  • /uploads/01/03/file.jpg
  • /uploads/44/93/anotherfile.png
  • /uploads/03/26/somefile.jpg

内容的提问来源于stack exchange,提问作者josh assing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:52:00