Title here
Summary here
正則表達式(Regular Expressions, regex)根據唔同嘅標準可以分為以下幾類。
類型 | 縮寫 | 全稱 |
---|---|---|
基本正則表達式 | BRE | BRE,Basic Regular Expressions |
擴展正則表達式 | ERE | ERE,Extended Regular Expressions |
Perl 正則表達式 | PCRE | Perl-Compatible Regular Expressions |
POSIX 正則表達式 | BRE & ERE | BRE & ERE |
BRE 同 ERE 係 POSIX 標準入面嘅兩種正則表達式, BRE 比較基礎,需要對某啲元字符轉義,ERE 係 BRE 嘅擴展,提供咗更多嘅元字符同功能。 PCRE 係一種功能更強大、語法更靈活嘅正則表達式類型, 廣泛用於現代編程語言如:Python、Ruby、Javascript。
支持 BRE 同 ERE,默認使用 BRE。
呢種模式需要對元字符進行轉義,例如:
)
:需要使用 \)
轉義。|
:需要使用 \|
轉義。使用 -E
或 -r
選項啟用 ERE,唔需要轉義元字符。
默認使用 ERE 模式。
有特殊含意嘅字符,需要轉義。
雖然 /
唔係正則表達式特殊字符,但喺 sed
同 gawk
入面都要轉義。
匹配行嘅首部位置。
如果 ^
唔係出現喺開頭,則同普通字符一樣,無須轉義。
匹配行嘅尾部位置。
如果 $
唔係出現喺結尾,則同普通字符一樣,無須轉義。
匹配除換行符外嘅任意單個字符。
Character Class,可以匹配組內任一字符。
排除組內字符。
匹配 c
- e
之間嘅字符。
匹配 c
- e
或 0
- 9
之間嘅字符。
匹配 *
號前面嘅字符 0 次或多次。
以上例子都係可以成功匹配嘅。
匹配 ?
號前面嘅字符 0 次或 1 次。
上面嘅例子都係可以匹配嘅,可以用 ^ 限制。
上面只能匹配 at 或 cat。
匹配 +
號前面嘅字符 1 次或多次。
指定 {}
前面字符嘅匹配次數。
表示或邏輯。
分組可以視為一個整體。