繁体   English   中英

如何从URL中提取文件名?

[英]How to extract file name from URL?

我在 URL 中有文件名,想去掉前面的 URL 和文件路径以及出现在?

示例网址

尝试使用 RegEx 拉取, CaptialForecasting_Datasheet.pdf

Google Data Studio 中的REGEXP_EXTRACT似乎是独一无二的。 尝试了该建议,但不断收到“无法解析”错误。 我能够使用以下内容删除 url 的第一部分。 Event Label是我存储下载的 PDF 的 URL 的地方。

网址:

https://www.dudesolutions.com/Portals/0/Documents/HC_Brochure_Digital.pdf?ver=2018-03-18-110927-033

REGEXP_EXTRACT( Event Label , 'Documents/([^&]+)' )

结果:

HC_Brochure_Digital.pdf?ver=2018-03-18-110927-033

现在试图确定如何在? 版本数据在哪里,以便只提取Filename.pdf

你可以试试:

[^\\/]+(?=\\?[^\\/]*$)

即使路径中有问号,这也将匹配CaptialForecasting_Datasheet.pdf 例如,正则表达式在这两种情况下都会成功:

https://www.dudesolutions.com/somepath/CaptialForecasting_Datasheet.pdf?ver
https://www.dudesolutions.com/somepath?/CaptialForecasting_Datasheet.pdf?ver

假设名称紧跟在最后一个/并以? ,下面的正则表达式会将名称留在组 1 中,您可以在其中使用\\1或您使用的任何工具支持来获取它。

.*\/(.*)\?

它基本上是说:在最后一个/和第一个之间获取所有内容? 之后,将其放入第 1 组。

另一个只匹配您想要的文件名但更复杂的正则表达式是:

(?<=\/)[^\/]*(?=\?)

它匹配所有非/字符, [^\\/] ,紧跟在/(?<=\\/)之后紧跟? , (?=\\?) 第一个括号是正向后视,括号中的第二个表达式是正向前瞻。

REGEXP_EXTRACT公式捕获字符a-zA-Z0-9_. /?

REGEXP_EXTRACT(Event Label, "/([\\w\\.]+)\\?")

谷歌数据洞察报告来演示。

3]

请尝试以下正则表达式
[A-Za-z\\_]*.pdf

我已经在https://regexr.com/在线尝试过。 附上截图以供参考
在此处输入图片说明

请注意,这只适用于 .pdf 文件

以下正则表达式将提取扩展名为.pdf文件名

(?:[^\/][\d\w\.]+)(?<=(?:.pdf))

您可以添加更多这样的扩展,

(?:[^\/][\d\w\.]+)(?<=(?:.pdf)|(?:.jpg))

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM