簡體   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