在分析數據或是資料的時候,你或許沒辦法直接從既有的篩選器,一次將你想要選擇的內容做全部資料的輸出,此時,學會使用正規表示式,或稱規則運算式(Regular Expression, RegEx) 就很重要了!

類似你在做google搜尋的時候,會使用一些符號協助你做更精準的搜尋,比如在Google搜尋技巧終極懶人包,搜索達人必學4 這篇文章裡面,我們介紹了簡單的符號或是文字,作為你在縮小搜尋範圍時的好幫手。(如下圖)

規則運算式也是類似的道理,用電腦能夠理解的語言,透過文字與符號找到你要的資訊,有些和google搜尋的技巧是重複的。

比方說,你想要找的網頁內容包含facebookinstagram的相關內容,就可以透過「與規則運算式相符合」這個功能,facebook|instagram 設定你的條件,而不用再煩惱怎麼一次篩選出多個你想要的數據內容。又如最初你在設定網址的時候,可能大小寫的尚未統一一致,有”f”acebook也有”F”acebook,那麼也可以使用規則運算式來協助資料搜尋:*acebook.acebook ?acebok

常見的規則運算式符號在Google的官方指南裡分成萬用字元、錨定文字、其他以及分組,你可以不用記得有哪四大分類,但你要記得它們的使用方式。

1. 點【.】

簡單來說,點可以代替所有可能的字元(字母、數字或符號)。

比如使用「.GC」,可以匹配的搜尋結果包括UGC(User Generated Content)、OGC(Occupationally Generated Content)、PGC(Professionally Generated Content)或是2GC、nGC等。

 

2. ? 【問號】

問號代表的意思是,比對前一個字串或是不比對。比如你在輸入facebook的時候可能不小心book少了一個o,那你使用規則運算式facebo?k,可能匹配的結果包括facebook(包括o)、facebok(不包括o)。

 

3. *【星號】

星號表示比對前一個字串零次或是多次。比方你輸入的「sky*blue」時,星好前面的字元為[y],因此搜尋結果會出現skblue(y出現零次)、skyblue(y出現一次)、skyyyyblue(y出現很多次)。

 

4. + 【加號】

加號跟星號類似,差別在於它至少要與前一個字比對一次或以上。以上一個例子「sky*blue」來說,搜尋結果可能會出現「skblue」,但因為加號強制在前面的符號至少要比對一次,因此如果輸入「sky+blue」,就一定會出現至少一次y:「skyblue」,其他可能的結果跟輸入星號一樣。

 

5.【直線】

跟使用google搜尋引擎類似,規則運算式也有代表「或者」的符號,就是直線。比如你想要搜尋整個網站跟Facebook、Instagram、Wordpress、Google有關的文章之流量,你就可以使用 Facebook|Instagram|Wordpress|Google 這樣的進階搜尋,為你想要的結果一次一網打盡。

又或者你有不同的產品,在網址的結尾分別使用thanks或是thankyou,那麼你也可以用/productname-thank (s|kyou),一次查看完成產品購買的使用者的資訊。

 

6. ^ 【插入符號】和 $【錢字符號】

^插入符號是比對前開頭,$錢字符號則是比對結尾。

比如你輸入的搜尋條件是 ^eat,那麼你會搜尋到的結果會有eateaten;如果是eat$,那麽搜尋到的結果可能是creat、peat、leat。如果你只想要搜尋eat這個字,那麼可以使用^eat$,這將只鎖定符合「eat」的這個搜尋結果

 

7. \ 【反斜線】

將任何特殊字元,恢復成一般字元。

可能在搜尋特定網址的時候裡面有一個點或者是查找IP的時候也有一個點,可是這個點同時又在規則運算式裡面有它自己的功能,為了要讓這個點不受到規則運算的影響(不要使用規則運算裡「點」的功能),此時就需要反斜線的幫助。

比如我想找transbiz.com但如果只輸入transbiz.com的時候可能會出現的搜尋結果包括transbizkcom、transbizzcom、transbizccom⋯⋯所以為了更精準地找到你想要的結果,在規則運算式裡輸入「transbiz\.com」,就會出現transbiz.com了。

基本的講完了以後,再來就是重要的分組符號(括號、方括號、破折號)!透過分組符號你可以更容易找到有規律的字串的所有結果。

8. ( ) 【括號】

括號簡單來說就是把你想要找的相關字詞放在括號裡面,它就會依照括號裡面的字元排序為你找到可能的結果。比如 (sym),你可能搜尋到的結果可能有sympathy、symbol、assym等。

而在使用上它常常會和|(直線)一起搭配使用,比如 sy(m|n),你可能就會找到syndrome。

 

9. [ ] 【中括號】

任意比對字串中裡面的每個項目。比如你設定[DEFG],那麼就會為你找出含有DEFG的相關內容,比如產品類別有A到Z,但你想看DEFG這幾個商品類別的表現,那麼就可以用product[DEFG]找到你要的商品:prdocutD、prdocutE、prdocutF、prdocutG

 

10. – 【破折號】

常常會和中括號[]一起使用,比如product [A-K], product [3-9] 就可以分別叫出編號A到K、編號3到9的商品。

在了解了規則運算式的符號了以後,會不會想考驗一下自己關於這些運算式的使用呢?其實你常在使用的Google表單,它背後設計的邏輯也是根據規則運算式,讓google知道使用者究竟有沒有輸入正確的代碼。

除了上面提到的代碼之外,還有一些使用上小技巧的標示符號:

數量標示:標示某個符號或字集被允許出現的次數
  • { } 數量符號
  • {10} 代表10個
  • {10, } 10個或以上
  • {1, 5} 1到5個之間
縮寫:
  • \w= [a-zA-Z]
  • \d =[0-9]
  • + = {1, }
  • ? = {0, 1}
  • * ={0,}

例如:

手機號碼:開頭到結尾都必須是數字,不得有連字符號
^[0-9]{10}$

郵遞區號:5碼數字
^[1-9]\d{4}$

身分證字號:一碼英文大寫搭配9碼數字
^[A-Z]\d{9}$

西元出身年月日:以1901/2/28表示
^\d{4}\/\d{1,2}\/\d{1,2}$
複雜版^[1-9]\d{3}\/[1]?\d\/[123]?\d$

為了確認你了解規則運算式,先看看下面的考題看看你是否能選出正確答案:

以下哪個選項表示IP 範圍從192.88.777.1到192.88.777.10

A) 192\.88\.777\.[1-9]10
B) 192.88.777.[1-10]
C) ^192\.88\.777\.([1-9]10)$
D) 192\.88\.777\.[1-10]

再來幾題,小試身手

(1)用一個字串表達以下網址

transbiz.com.tw/post55688/text
transbiz.com.tw/post58588/text
transbiz.com.tw/post25252/text

 

(2)用一個字串表達下列所有IP

192.141.9.3
192.141.7.3
192.141.4.3

 

(3)用一個字串表達下列所有網址

transbiz.com.tw/fb/post01
transbiz.com.tw/fb/post02
transbiz.com.tw/fb/post03
transbiz.com.tw/web/post01
transbiz.com.tw/web/post02
transbiz.com.tw/web/post03

解答:
(1)transbiz\.com\.tw/post[0-9]{5}/text
(2)192\.141\.[1-9]\.3
(3)transbiz\.com\.tw/(fb|web)/post0[1-3]

RegEx的應用

前面有稍微提到,RegEx能夠協助你在做數據分析的時候,將所有相關的資料調出來。這邊再細部講解一下可能會使用到的情況:

(1)Google Analytics設定的目標(Goals)

比方說,不論是用者購買了你網站上的哪一個商品、完成了訂房,完成的頁面可能會根據使用者的訂單時間跟商品品項出現如下的網址

book/TypeA/201802061655/success=1
book/TypeB/201802081742/success=1

若你要區隔出TypeA房型的訂單,那麼你在規則運算式的表達就會是

(2)Google Tag Manager

你在做轉換追蹤的時候可能會因為不同的活動和使用者在網站上的「動作」設定不同的Tag,但如果你想要同時看某種篩選條件下所有的資料結果,省去單項比對的時間時,那麼你也會需要使用到RegEx來設定你的GTM。

比方說,你的網頁有不同的語言,而你想要鎖定以英語系為主要國家的使用者,他們造訪你的網站,那麼你就可以輸入(US|UK|AU|CA) 這樣的條件,為你一次將這些以英語為主要母語的國家之使用者的行為標記。

其實知道RegEx規則運算式跟能夠應用出來還差一小段路,你可以到regexr.com這個網站檢查你輸入的規則運算式是否有誤,到Jay Taylor整理的規則運算式表單熟悉每一個符號的使用。但如果你還不知道Google Analytics或是Google Tag Manager,還是先把基本知識備足了再來學進階的吧!

Google Analytics初階者必懂GA分析的8大基本功能
Google Analytics (GA) 實用教學,快速掌握7大重點分析指標
Google Tag Manager 教學,一篇搞懂如何設定和管理網站追蹤碼
GTM轉換設定大全,整合你的FB Pixel、GA、購物車

 

 

想瞭解更多跨境電商和行銷相關資訊,歡迎訂閱TransBiz電子報

Doris Lin
Doris Lin
喜歡學習新的事物、喜歡胡思亂想、喜歡挑戰自己的極限。用心去感受生活的每一天,創造自己存在的價值,做有意義的事。電子商務的快轉,加速世界貨幣流動的速度和方式,期待可以透過TransBiz讓更多台灣的品牌站上國際的舞台,然後大聲的說「We are from Taiwan」。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

[{"Seq":1
[{"Seq":1
"Name":"First Name"
"Name":"First Name"
"SchemaName":"FirstName"
"SchemaName":"FirstName"
"Type":"text"
"Type":"text"
"CtrlType":"textbox"
"CtrlType":"textbox"
"IsMandatory":"1"
"IsMandatory":"1"
"DisplayName":"Name"
"DisplayName":"Name"
"MinLength":""
"MinLength":""
"MaxLength":"100"
"MaxLength":"100"
"DefaultValue":""
"DefaultValue":""
"MaskText":null
"MaskText":null
"OptionValues":""
"OptionValues":""
"ChildFields":[]
"ChildFields":[]
[{"Seq":1
[{"Seq":1
"Name":"First Name"
"Name":"First Name"
"SchemaName":"FirstName"
"SchemaName":"FirstName"
"Type":"text"
"Type":"text"
"CtrlType":"textbox"
"CtrlType":"textbox"
"IsMandatory":"1"
"IsMandatory":"1"
"DisplayName":"Name"
"DisplayName":"Name"
"MinLength":""
"MinLength":""
"MaxLength":"100"
"MaxLength":"100"
"DefaultValue":""
"DefaultValue":""
"MaskText":null
"MaskText":null
"OptionValues":""
"OptionValues":""
"ChildFields":[]
"ChildFields":[]