bre與ere的異同
posix有兩種風格的正規表示式:基本正規表示式(bre)與擴充套件正規表示式(ere)。
下面,來討論一下這兩種正規表示式之間的異同。
meta字元
相同之處:
\ 用以關閉後續字元的特殊含義
. 匹配任何的單個字元,nul除外
* 匹配在它之前的任何數目的單個字元
# 匹配緊接著的正規表示式,在行或字串的起始處
$ 匹配前面的正規表示式,在行或字串的結尾處
[…] 匹配括號內的任一字元
相異之處:
\ bre 區間表示式,匹配在它前面的單個字元重現的次數區間
ere 區間表示式,匹配在它前面的單個字元重現的次數區間
\( \) bre 表示子模式,可通過轉義序列來引用(例如\1)
( ) ere 匹配與括起來的正規表示式
\n bre 重複在\(與\)括號內的第n個子模式。n為1至9的數字。
+ ere 匹配前面正規表示式的乙個或多個例項
? ere 匹配前面正規表示式的零個或乙個例項
| ere 匹配於|符號前或後的正規表示式
^與$僅在bre的起始與結尾處具有特殊用途。在bre下,ab^cd裡的^表示的,就是自身的^,並不是meta字元;同樣,ef$gh裡的$在這裡表示的也就是字面上的美元符號。然後在ere裡,^與$永遠是meta字元。所以,像ab^cd與ef$fg這樣的正規表示式仍是有效的,只是無法匹配到任何東西。
運算子優先順序
相異之處:
bre的運算子優先順序(由高至低遞減)
[..] [==] [::] 用於字元排序的方括號符號
\metacharacter 轉義的meta字元
方括號表示式
\( \) \digit 子表示式與後向引用
* \ 前置單個字元重現的正規表示式
無符號 連續
^ $ 錨點
ere的運算子優先順序(由高至低遞減)
[..] [==] [::] 用於字元排序的方括號符號
\metacharacter 轉義的meta字元
方括號表示式
() 分組
* + ? {} 重複前置的正規表示式
無符號 連續
^ $ 錨點
| 交替
BRE與ERE的異同
bre與ere的異同 posix有兩種風格的正規表示式 基本正規表示式 bre 與擴充套件正規表示式 ere 下面,來討論一下這兩種正規表示式之間的異同。meta字元 相同之處 用以關閉後續字元的特殊含義 匹配任何的單個字元,nul除外 匹配在它之前的任何數目的單個字元 匹配緊接著的正規表示式,在行...
正規表示式之BRE與ERE字符集
一 bre basic register express 基本的正規表示式 2 meta字元 3 方括號表示式 4 後向引用 匹配於正規表示式匹配的先前的部分。第一步將子表示式包圍在 與 裡 第二部使用 digit,匹配於第n個先前方括號內子表示式匹配成功的字元。5 區間表示式 n與m的值在0至re...
與 的區別? 與 的區別?
相同點 和 都是表示與的邏輯運算子,其運算結果一致 不同點 邏輯與 當兩邊的表示式都為true的時候,整個運算結果才為true,否則為false。短路與 當第乙個表示式的值為false的時候,則不再計算第二個表示式 注意 還可以做位運算子,當表示式不是boolean型別的時候 例項1 public ...