14,953
edits
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
從文章內容中擷取網址 (又稱 [https://zh.wikipedia.org/zh-tw/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E5%AE%9A%E4%BD%8D%E7%AC%A6 統一資源定位符], [https://en.wikipedia.org/wiki/Uniform_Resource_Locator Uniform Resource Locator])。 | 從文章內容中擷取網址 (又稱 [https://zh.wikipedia.org/zh-tw/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E5%AE%9A%E4%BD%8D%E7%AC%A6 統一資源定位符], [https://en.wikipedia.org/wiki/Uniform_Resource_Locator Uniform Resource Locator]) 或[https://zh.wikipedia.org/zh-tw/%E5%9F%9F%E5%90%8D 網域] (domain name)。 | ||
== 從文章內容,擷取完整網址 == | == 從文章內容,擷取完整網址 == | ||
| Line 75: | Line 75: | ||
== 從文章內容,擷取網址中的網域部分 == | == 從文章內容,擷取網址中的網域部分 == | ||
[[ | === 使用 Google sheet 擷取網域 === | ||
使用 Google 試算表 [https://support.google.com/docs/answer/3098244?hl=zh-Hant REGEXEXTRACT] 函數 | |||
<pre> | |||
=REGEXEXTRACT(A1, "(http[s]?\://[^/]+)") | |||
</pre> | |||
輸入: | |||
<pre> | |||
Yahoo! 新聞 https://tw.news.yahoo.com/abc | |||
</pre> | |||
輸出: | |||
<pre> | |||
https://tw.news.yahoo.com | |||
</pre> | |||
說明: | |||
# 網域指以 <nowiki>http://</nowiki> 或 <nowiki>https://</nowiki> 開頭,與相臨不是符號 {{kbd | key = <nowiki>/</nowiki>}} 的多個文字:{{kbd | key = <nowiki>[^/]+</nowiki>}}。 | |||
== 從文章內容,擷取特定檔案類型的網址 == | == 從文章內容,擷取特定檔案類型的網址 == | ||
| Line 122: | Line 139: | ||
* 啟動下載任務 | * 啟動下載任務 | ||
== | == 資料驗證用 == | ||
=== 文章內容是否包含網址 === | |||
使用 Google 試算表 [https://support.google.com/docs/answer/3098292?hl=zh-Hant REGEXMATCH] 函數,符合正規表示法的規則的話,回傳 TRUE。若不符合,則回傳 FALSE。 | 使用 Google 試算表 [https://support.google.com/docs/answer/3098292?hl=zh-Hant REGEXMATCH] 函數,符合正規表示法的規則的話,回傳 TRUE。若不符合,則回傳 FALSE。 | ||
<pre> | <pre> | ||
| Line 147: | Line 165: | ||
FALSE | FALSE | ||
</pre> | </pre> | ||
=== 文章內容是否包含網域 === | |||
原始資料包含網域,但是網域前面不包含 http e.g. tw.news.yahoo.com 或 www.bbc.co.uk。使用 Google 試算表 [https://support.google.com/docs/answer/3098292?hl=zh-Hant REGEXMATCH] 函數,符合正規表示法的規則的話,回傳 TRUE。若不符合,則回傳 FALSE。 {{exclaim}} 以下語法未處理 [https://zh.wikipedia.org/wiki/IPv4 IPv4] 形式的網域。(如果網域前面包含 http ,則可直接搜尋關鍵字: regular expression extract host ) | |||
<pre> | |||
=IF(ISERROR(REGEXMATCH(A1, "([a-zA-Z0-9\-_\\._~\:\/\?#\[\]@\!\$&'\(\)\*\+,;\=%]+\.[a-zA-Z]{2,}$|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})")), FALSE, REGEXMATCH(A1, "([a-zA-Z0-9\-_\\._~\:\/\?#\[\]@\!\$&'\(\)\*\+,;\=%]+\.[a-zA-Z]{2,}$|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})")) | |||
</pre> | |||
輸入1: | |||
<pre> | |||
www.bbc.co.uk | |||
</pre> | |||
輸出1: | |||
<pre> | |||
TRUE | |||
</pre> | |||
輸入2: | |||
<pre> | |||
127.0.0.0 | |||
</pre> | |||
輸出2: | |||
<pre> | |||
TRUE | |||
</pre> | |||
輸入3: | |||
<pre> | |||
Yahoo! 新聞 | |||
</pre> | |||
輸出3: | |||
<pre> | |||
FALSE | |||
</pre> | |||
不建議的其他方法: | |||
* 檢查網域結尾是否是 .com, .tw, .net, .org 因為太多要列舉,該方法沒有效率。 | |||
== References == | == References == | ||