[Regex][Regular Expression][正規表示法]基本規則(二)

工作上偶而會使用,但每次使用都要花點時間爬文恢復記憶,想試試自行整理筆記能否減少回憶時間。

通常使用正規表達式時,會使用兩個斜線 / /,例如: /abc/。
至於可用的Pattern,將不定時整理如下表:

字元說明範例結果
.點,代替所有可能的字元(字母、數字或符號),除了「\r」「\n」B.D ABCDE
.ABCDE
?問號,比對前一個字串或是不比對Fo?d1Food 2Fod/Fd
Foo?d1Food 2Fod/Fd
+加號,比對前一個字比對一次或以上Fo+d1Food 2Fod/Fd
Foo+d 1Food 2Fod/Fd
*星號,比對前一個字串零次或是多次Foo*d1Food 2Fod/Fd
Fo*d1Food 2Fod/Fd
.*組合用法,T.*tFood|Tea|Water
直線,代表OR「或者」Food|TeaFood or Tea
Food|WaterFood or Tea
^插入符號,比對從開頭開始Water$Food|Tea|Water
^TeaFood|Tea|Water
$錢字符號,比對從結尾開始Food$Food|Tea|Water
Tea$Food|Tea|Water
^加&組合用法,鎖定內容^Tea$Food|Tea|Water
\反斜線,脫序字元,將系統保留字還原為一般字Food\|TeaFood|Tea
( )Capturing Group,表示一個 Subexpression,也稱作是一個群組 (Group)
每個群組裡的Match的值會保存起來,順序為從左到右,第一個編號為1,第二個編號為2,依此類推
  
  
[ ]中括號,Match中括號裡面的每個字元
[^ ]過濾(不Match)括號裡面字元
[abcd]Food
[ao]Food
[^Fo]Food
-

破折號,用於表示連續字元
[a-zA-Z] Match所有大小寫字母

[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, }代表2次子以上

{2,4}代表2到4次

  
  
  
\b需位於單詞邊界od\bFood or Tea
Te\bFood or Tea
Fo\bFood or Tea
oo\bFood or Tea
\B不能位於單詞邊界od\BFood or Tea
Te\BFood or Tea
Fo\BFood or Tea
oo\BFood or Tea
Backreference

Backreference用反斜線加上一個數字,數字從 1 開始表示一個 capturing group(Match到的結果)

 

(111)(222)\1 等於 (111)(222)(111)
(111)(222)\2 等於 (111)(222)(222)

([12])3([4])\113412
([12])3([4])\112342
([1])23([4])\1\212341456
([1])23([4])\1\1123411456
(?:pattern)會進行查詢,但不取得查詢到的結果且不存入Group  
(?=pattern)

正向肯定預查(look ahead positive assert)Match Pattern前面的位置。
這是一個非獲取Match,Match結果不需要儲存供以後使用。

簡單說,以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][正規表示法][範例]常見的用法(三)

嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。

文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。