[英]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 组。
另一个只匹配您想要的文件名但更复杂的正则表达式是:
(?<=\/)[^\/]*(?=\?)
它匹配所有非/
字符, [^\\/]
,紧跟在/
, (?<=\\/)
之后紧跟?
, (?=\\?)
。 第一个括号是正向后视,括号中的第二个表达式是正向前瞻。
以下正则表达式将提取扩展名为.pdf
文件名
(?:[^\/][\d\w\.]+)(?<=(?:.pdf))
您可以添加更多这样的扩展,
(?:[^\/][\d\w\.]+)(?<=(?:.pdf)|(?:.jpg))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.