規則運算式是什麼?
規則運算式是一種用來比對特定字串的運算式,讓你在過濾或篩選資料時能更為方便有效,常使用在 Google Analytic 及 GTM 上,而最近 Google Search Console 也推出規則運算式可以套用篩選資料,這篇為 Google Search Console 教學指南中的一部分。
常見規則運算式
以下表格是如果在後面看到不懂的符號時,可以回頭來查詢用,這個表格資訊來自 Google 文件所提供,並且補上了一些常見規則。
萬用字元 | 說明 |
---|---|
. | 比對任何單一字元。「m.n」的比對結果會包括「men」和「man」,但不包括「meen」 |
[<字元>] | 比對 [ ] 中的任何單一項目。「c[aie]t」的比對結果會包括「cat」、「cit」和「cet」「i[o0-9]n」的比對結果會包括「ion」和「i7n」,但不包括「ian」 |
* | 對前接字母或模式進行 0 次或多次比對。「fo*d」的比對結果會包括「fd」、「fod」、「food」和「foooooooood」「https*://example」的比對結果會包括「http://example」和「https://example」 |
+ | 對前接字母或模式進行 1 次或多次比對。「fo+d」的比對結果會包括「fod」、「food」、「foooooooood」,但不包括「fd」 |
| | 等同 OR 運算子,系統會比對 | 運算子前面或後面的運算式。「New York|San Francisco」的比對結果會包括「I love New York」和「I love San Francisco」 |
\d | 比對 0 到 9 之間的一個數字。「\d\d\d abc」的比對結果會包括「123 abc」 |
\D | 比對任何非數字 (例如任何字母,或是 + 或 , 或 ? 等字元)。「\D\D\D 123」的比對結果會包括「aaa 123」,但不包括「123 123」 |
\s | 比對任何空格 (例如定位點、空格)。「1\s2\s3」的比對結果會包括「1 2 3」 |
\S | 比對任何非空格。以字串「fire and ice」為例,「(\S)+」的比對結果會包括「fire」、「and」、「ice」這三個字,但不包括空格,也不包括整個字串 |
(?i) | 對 (?i) 後面所有字元進行區分大小寫的比對。「(?-i)AAA」的比對結果會包括 https://example.com/AAA,但不包括 https://example.com/aaa |
^ | 用於運算式的開頭,能限制比對結果的開頭必須是目標字串。「^example」的比對結果會包括「example」,但不包括「an example」「example」的比對結果則會同時包括「example」和「an example」 |
$ | 用於運算式的結尾,能限制比對結果的結尾必須是目標字串。「ok$」的比對結果會包含「book」、「hook」或是「ok」,但不包含「okay」 |
? | 比對前一個字元零次或一次, |
\ | 避開特殊字元,假如你要抓取網址帶有「?color=」的網址時,你就需要 |
如何在 Google Search Console 中使用規則運算式
首先進入 Google Search Console 中,然後點擊成效後,會進入過去一段時間自然流量的成效圖中,點擊上面『驗證新的網站』。
因為翻譯的關係,那段『驗證新的網站』其實很容易誤導使用者。不過點擊之後,『查詢』及『頁』的功能中就能看到規則表示式的篩選功能。
但要記得的是,規則運算式有兩個限制:
- 一是不能使用排除功能的規則運算式(但 Google 提供與規則運算式不相符的選項)
- 二是有 4096 字元的限制,不過一般人應該也不會用超過
簡單介紹完規則運算式後,就要來介紹 10 大最實用的規則運算式了,你只要複製語法更換關鍵字或相關資訊即可在你的頁面中使用。
10 大 Google Search Console 實用規則運算式
以下介紹中的上引號及下引號皆不是規則運算式的字元,使用時請勿加入。
- 多個關鍵字或多個路徑
符號『|』代表『或者(or)』的意思,想找有關關鍵字A或關鍵字B時的成效時輸入(頁或查詢):
(A|B)
想看路徑 dog 或是路徑 book 的成效時輸入:
example.com/dog|example.com/book
或
example.com/(dog|book)
- 包含特定字詞的相關關鍵字
使用『.*』將關鍵字包住代表匹配之前或之後的任何字元,再加上其它字詞即可配出我要的關鍵字,例如我想找『關於吃葉黃素』使用者會如何搜尋,輸入(查詢):
.*葉黃素.*吃
這樣關於葉黃素與吃的相關關鍵字就能自動過濾出來。
- 抓去多個路徑成效
你如果要比對多個路徑下的成效,推薦可以輸入(頁):
^https://www.seo-tea.com/(google-search-console-tutorial|page-experience-signal|javascript-seo)/$
- () 代表將元素群組
- | 代表或者 or
- ^ 代表以…做開頭
- $ 代表以…做結尾
- 尋找長尾關鍵字
當你內容較多且想優化字數較多的長尾關鍵字時,可以輸入(查詢):
^[\w\W\s\S]{30,}$
其中的 30 為字元數,你可以替換成你想要的數字看不同字數關鍵字成效。
- ^ 代表以…做開頭
- $ 代表以…做結尾
- [\w\W\s\S] 任何字符
- {30,} 30 個以上的字元
- 尋找過長網址
如果你想找是否有因為參數或其它原因導致的網址過長,可以輸入(頁):
^[\w\W\s\S]{100,}$
- 結尾帶斜線的網址
其實很多網址會同時存在帶斜線後綴及未帶斜線後綴的網址,要查看有帶斜線後綴的網址,你可以輸入:
.*\/$
然後將『與規則運算式相符』改成『與規則運算式部符』即可查看未帶斜線之功能。
- 特定路徑/參數的網址
跟前面提到第二第三有點像,就是結合像是『.*』、『|』或『()』,例如你要找帶有顏色跟尺寸的網址,可以輸入:
.*\?(color|size)
- 精選摘要用字
我們都知道 5w1h 的問句是精選摘要最容易出現的,但英文的 5w1h 不好直接套入搜尋,所以我修改了關鍵字,輸入:
(如何|怎麼|什麼|哪|嗎|是|意思)
這樣就能過濾出像『哪裡可以買…』、『…是什麼』、『…是什麼意思』、『怎麼做…』等關鍵字,十分好用。
- 反向使用規則表示式
當 Search Console 規則表示式出來時,被許多網站管理員所抗議的是,Re2 並不支援規則表示式的排除功能,所以 Google 官方立刻加入了與規則運算式不符的功能給大家使用,加入你想過濾的資訊,然後選擇不符做排除。
- 其它頁面相關表示式
條件 | 規則表示式 | 輸出範例 | 備註 |
http及https | http[s]?:\/\/domain\.com | https://www.domain.com http://domain.com | [s]? 就是比對有無s都算條件成立 沒有刻意比對www,所以有無www都會出現 |
符合www、m或子網域 | http[s]?:\/\/((m|www)\.)?domain\.com | https://domain.com https://m.domain.com https://www.domain.com http://domain.com | 這項比較常用於網域資源比對 |
至少含有一個子目錄 | http[s]?:\/\/((m|www)\.)?domain\.com\/([^\/]+)\/ | https://domain.com/666/ | com\/([^\/]+)\/ 最後這段代表com/後必需再帶 一個路徑且含後綴/,所以下面網址就不會出現 https://domain.com/news.php?q=666 |
至少含有兩層目錄 | http[s]?:\/\/((m|www)\.)?domain\.com\/([^\/]+)\/([^\/]+)\/ | https://domain.com/66/77/ | 要幾層就加幾個 ([^\/]+)\/ |
目錄+路徑 | http[s]?:\/\/((m|www).)?domain.com\/([^\/]+)\/([^\/]+)$ | https://domain.com/66/seo.php | 最後+)$代表路徑之後以任意字元做結尾 |
第一層是特定路徑 | http[s]?:\/\/((m|www)\.)?domain\.com\/(amp\/)?seo\/url.html | https://domain.com/amp/seo/url.php | 查看amp或特定路徑時使用 |
無參數 | http[s]?:\/\/((m|www)\.)?domain\.com\/([^\?]+)$ | https://domain.com/666/ | 選擇與運算式不符就能篩出參數網址 |
總結
規則表示式有許多種變化及應用,也可能相當複雜,我自己整理時也遇到相當多的問題,像是 url 如果有中文就一定要轉換成字元去過濾,然後我也因為忘記切成規則表示式、切錯網頁導致花了很多時間在除錯,這些規則也是看到頭昏眼花。如果你有想要實現的規則表示式卻不知道怎麼下手,又或者遇到了什麼相關的問題,都歡迎在底下留言我們一同討論。
常見問題
為什麼規則表示式輸入後完全空白?
有幾個原因,分別是『未選擇自訂(規則運算式)』、『頁跟關鍵字搞錯』、『選錯網站』、『規則表示式輸入錯誤』檢查完這幾點通常就能解決8成問題了。
關鍵字及頁面規則表示式需要注意什麼?
這邊以中文為主,關鍵字的規則表示式不可用字元表示,而網址若帶有中文網址在使用規則表示式時需要轉換成字元,否則將無法正確跑出所要資訊。
Search Console 的規則表示式可以用排除嗎?
不行,只能使用 Search Console 提供的『與規則運算式不符』的選項。
資料來源:
- https://atedev.wordpress.com/2007/11/23/正規表示式-regular-expression/
- https://www.gsqi.com/marketing-blog/filter-gsc-data-regular-expressions-ga/
- https://unyscape.com/regex-in-google-search-console/
- https://www.decodedigitalmarket.com/google-search-console-regex/
- https://seonotebook.com/notes/gsc-regex-longtail-keywords-questions/
- https://www.mecagoenlos.com/Posicionamiento/expresiones-regulares-en-google.php
- 常見的規則運算式