工作上偶而會使用,但每次使用都要花點時間爬文恢復記憶,想試試自行整理筆記能否減少回憶時間。
通常使用正規表達式時,會使用兩個斜線 / /,例如: /abc/。
至於可用的Pattern,將不定時整理如下表:
字元 | 說明 | 範例 | 結果 |
. | 點,代替所有可能的字元(字母、數字或符號),除了「\r」「\n」 | B.D | ABCDE |
. | ABCDE | ||
? | 問號,比對前一個字串或是不比對 | Fo?d | 1Food 2Fod/Fd |
Foo?d | 1Food 2Fod/Fd | ||
+ | 加號,比對前一個字比對一次或以上 | Fo+d | 1Food 2Fod/Fd |
Foo+d | 1Food 2Fod/Fd | ||
* | 星號,比對前一個字串零次或是多次 | Foo*d | 1Food 2Fod/Fd |
Fo*d | 1Food 2Fod/Fd | ||
.* | 組合用法, | T.*t | Food|Tea|Water |
| | 直線,代表OR「或者」 | Food|Tea | Food or Tea |
Food|Water | Food or Tea | ||
^ | 插入符號,比對從開頭開始 | Water$ | Food|Tea|Water |
^Tea | Food|Tea|Water | ||
$ | 錢字符號,比對從結尾開始 | Food$ | Food|Tea|Water |
Tea$ | Food|Tea|Water | ||
^加& | 組合用法,鎖定內容 | ^Tea$ | Food|Tea|Water |
\ | 反斜線,脫序字元,將系統保留字還原為一般字 | Food\|Tea | Food|Tea |
( ) | Capturing Group,表示一個 Subexpression,也稱作是一個群組 (Group) 每個群組裡的Match的值會保存起來,順序為從左到右,第一個編號為1,第二個編號為2,依此類推 | ||
[ ] | 中括號,Match中括號裡面的每個字元 [^ ]過濾(不Match)括號裡面字元 | [abcd] | Food |
[ao] | Food | ||
[^Fo] | Food | ||
- | 破折號,用於表示連續字元 [A-Z] Match A到Z,大寫字母 [a-z] Match a到z,小寫字母 [0-9] Match 0到9,阿拉伯數字 | [a-zA-Z] | Food|Tea|Water |
[0-9] | text0123456789 | ||
{ } | 大括號,表示年字元比對次數 {2, }代表2次子以上 {2,4}代表2到4次 | ||
\b | 需位於單詞邊界 | od\b | Food or Tea |
Te\b | Food or Tea | ||
Fo\b | Food or Tea | ||
oo\b | Food or Tea | ||
\B | 不能位於單詞邊界 | od\B | Food or Tea |
Te\B | Food or Tea | ||
Fo\B | Food or Tea | ||
oo\B | Food or Tea | ||
Backreference | Backreference用反斜線加上一個數字,數字從 1 開始表示一個 capturing group(Match到的結果)
(111)(222)\1 等於 (111)(222)(111) | ([12])3([4])\1 | 13412 |
([12])3([4])\1 | 12342 | ||
([1])23([4])\1\2 | 12341456 | ||
([1])23([4])\1\1 | 123411456 | ||
(?:pattern) | 會進行查詢,但不取得查詢到的結果且不存入Group | ||
(?=pattern) | 正向肯定預查(look ahead positive assert)Match Pattern前面的位置。 簡單說,以xxx(?=pattern)為例,就是Match以pattern結尾的內容xx | Red(?=Tea) | Food RedTea |
線上資源:
https://regex101.com/
https://regexone.com/
參考連結:
Regular Expression (regex),要成為GA專家一定要懂的正規表示式
Regular Expression (正[則規]表[達示]式)
正規表示式(Regular Expression)
正則表達式中(?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)和(?<!pattern)
相關連結:
[Regex][Regular Expression][正規表示法]基本介紹(一)
[Regex][Regular Expression][正規表示法][範例]常見的用法(三)
嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。
文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。