bre與ere的區別 BRE與ERE的異同

2021-10-18 01:19:17 字數 1483 閱讀 6692

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 ...