前一陣子寫了一系列的篩選器設定,其中篩選器中的「進階篩選器」會需要自行設定要篩選規則,這時候就有可能會用到「規則運算式 Regular Expression」(也稱為「正規表達式」,好像還有其他名稱)。「規則運算式 Regular Expression」雖然入門有點難,但透過這個「規則運算式 Regular Expression」可以幫助我們進行較全面的設定。
第一次用到「規則運算式 Regular Expression」是因為有一個帳戶的報表有點小亂,報表帶出來的網址帶了太多「參數」,導致這種情況的原因有點複雜,最後解決方案就是妥協現況,然後在報表統整上下多一點功夫。所以就用了「進階篩選」來幫助我統整資料,不然每次都要下載到Excel在一個一個做取代,真的是很耗時間。成功執行「進階篩選」後,我又一次覺得科技真是厲害,不過短短幾行的設定,就可以完成我耗了半天才能完成的工作。
先來看看Google Analytics對規則運算式的簡介
Google Analytics (分析) 支援規則運算式,方便使用者建立更強大的執行方式。規則運算式是用來比對或擷取欄位中部分資料的特殊字元,也是規範所有字元的規則。Google Analytics (分析) 的篩選器大多透過這些運算式比對資料,並在找到符合項目時執行特定動作。
規則運算式分為四種:
- 萬用字元

- 錨定文字
- 其他

- 分組

分別來介紹「規則運算式 Regular Expression」的字元:
- [.]句點:比對任何單一字元,不管是字母、數字還是符號
舉個例子:
如果我設定:start.do,那麼startsdo、start7do、start$do都可以比對成功,但無法跟startdo比對成功,因為沒有字元去取代[.]。
- [\]反斜線:將任何特殊字元變成常值字元。
會在[.]之後講[\]是因為[\]跟[.]一起使用的機率頗高的。
舉個例子:
如果我設定為:homepage.com,正常來說,homepageicom、homepage4com、homepagedcom等符合比對,但我其實是要跟homepage.com完全相符,這個時候的[.]就不能表示為任意字元,所以我可以在[.]之前加上[\]來把[.]變成常值字元。
所以應該這樣設定:homepage\.com,這樣才會跟homepage.com完全相符。
- [*]星號:與零個或多個前一個字元比對。
舉個例子:
start*do,由於[*]前面的一個字元是[t],所以start*do會跟startttttdo、startdo、stardo比對成功。stardo也會符合比對是因為零個字元也包含在內,也就是說即使沒有前一個字元[t]也可以。
- [?]問號:與零個或一個前一個字元比對。
舉個Google Analyitcs說明中心的例子(因為英文單字不好想阿,只好直接引用說明中心的例子):假設您經營某個經濟學網站,且只想要查看標題中帶有「labor」這個字詞的推薦連結來源網址,但部分推薦連結來源網址的國家/地區卻使用另一種拼法:「labour」。這時,您可以建立像這樣的篩選器:labou?r。
這樣一來,它就會比對到「labour」(包含「u」,也就是前字符) 和「labor」(包含零個前字符,也就是不含「u」)。
- [+]加號:與至少一個前一個字元比對。
[+]的用法跟[*]一樣,只是[+]至少要有一個以上,而[*]是零個以上。
舉個例子:
舉一樣的例子,start+do,所以start+do會跟startdo、startttdo相符,但不會跟stardo相符,因為至少要有一個前一字元[t]。
- [[ ]]方括號:建立要比對的項目清單。
當我們使用[[ ]]方括號的時候,[[ ]]裡的字元都是個別一個項目。
舉個例子:
[123],則會與1、2、3分別比對。例如,我的網站上有ANSKU1到ANSKU10共十個產品型號,我只想知道,ANSKU1、ANSKU3、ANSKU4這三個產品的相關數據,所以我可以設定ANSKU[134],就能篩選出這三個產品。
- [-]破則號:擴充清單。
[-]會與[[ ]]也常常用在一起,舉個例子:
no[0-8],這代表no1、no2‧‧‧、no8 都可以被比對成功。[A-G] 就等於 [ABCDEFG]。
- [|]管狀符號:進行「或」的條件比對。
簡單來說就是OR的意思。
舉個例子:
a|b,會和a或b比對成功。
- [( )]圓括號:建立一個項目。
我知道這樣寫看不懂,但Google Analytics的說明中心的確就是這樣寫。
[( )]跟[|]常常會一起出現,舉個例子應該就會瞭解了:
start(do|go)會和startdo或是startgo兩個相符。再舉個例子grand(mother|father),會與 grandmother (祖母) 或 grandfather (祖父) 比對成功。
- [$]金錢符號:與欄位結尾比對。
舉個例子:
設定start$,則gostart、letstart會比對成功,但startdo就不會被比對成功。使用[$]Google Analytics就只會比對到[$]之前的字(這邊是[t]),若[t]後面還有其他字元,就代表與此運算式不相符。
- [^]脫字符號:
[$]是結尾,[^]則是開頭。
舉個例子:
設定^start,則會跟startdo、starter、startwin比對成功,但不會跟gostart比對成功,使用[^]就只能從設定的字開始往後比對,前面不能有其他字元。
出個Google Analytics IQ裡的考題讓大家複習一下規則運算式:
You want to exclude your company’s internal traffic from your reports. Which RegEx would exclude the IP range 193.88.222.1 to 193.88.222.10? (Hint: Use the RegEx Generator in the Google Analytics Help Center)
A. 193\.88\.222\.[1-9]10
B. 193.88.222.1-10
C. ^193\.88\.222\.([1-9]10)$
D. 193\.88\.222\.(1-10)
答案是哪個呢?
來測試看看「規則運算式 Regular Expression」
為設定檔或自訂報表建立篩選器時,運用規則運算式可提高篩選器的彈性。若想簡單的用您的資料測試一下規則運算式,請直接前往您設定檔中的報表,然後使用進階表格篩選功能。
我們可以先在報表裡篩選一次,看看篩選出來的是不是我們要的,可以預防篩選錯誤導致資料都沒了或是資料不正確。
在哪裡篩呢?

可以參考這篇文章<Google Analytics 各篩選功能的差別>的第三種篩選功能是:表格篩選。
Google Analytics也提供了幾個方法讓我們測試一下規則運算式:
以上就是「規則運算式」的介紹,有問題的朋友都可以在下方留言喔!