# 正規表示式
# /blob/master/translations/readme-cn.md
元字元
. 句號匹配任意單個字元除了換行符。
字元種類。匹配方括號內的任意字元。[^
] 否定的字元種類。匹配除了方括號裡的任意字元
* 匹配》=
0個重複的在*號之前的字元。
+ 匹配》=
1個重複的+號前的字元。
? 標記?之前的字元為可選.
匹配num個大括號之前的字元或字符集 (n <= num <= m)
.(xyz) 字符集,匹配與 xyz 完全相等的字串.
| 或運算子,匹配符號前或後的字元.
\ 轉義字元,用於匹配一些保留的字元 (
).*+
?^ $ \ |
^ 從開始行開始匹配.
$ 從末端開始匹配.
點運算子 .
.ar匹配乙個任意字元後面跟著是a和r的字串。
字符集方括號用來指定乙個字符集。 在方括號中使用連字元來指定字符集的範圍。
[tt]he 匹配 the 和 the
方括號的句號就表示句號。
表示式 ar[
.] 匹配 ar.字串
否定字符集
表示式[
^c]ar 匹配乙個後面跟著ar的除了c的任意字元。
* 號*號匹配 在*之前的字元出現大於等於0次。
表示式 a* 匹配0或更多個以a開頭的字元
表示式[a-z]
* 匹配乙個行中所有以小寫字母開頭的字串。
*字元和.字元搭配可以匹配所有的字元.
**和表示匹配空格的符號\s連起來用
表示式\s*cat\s*匹配0或更多個空格開頭和0或更多個空格結尾的cat字串。
+ 號+號匹配+號之前的字元出現 >=
1 次 表示式c.
+t 匹配以首字母c開頭以t結尾,中間跟著至少乙個字元的字串。
? 號? 標記在符號前面的字元為可選,即出現 0 或 1 次。
表示式 [t]
?he 匹配字串 he 和 the
號 是乙個量詞,常用來限定乙個或一組字元可以重複出現的次數
表示式 [0-
9]匹配最少 2 位最多 3 位 0
~9 的數字。
省略第二個引數
[0-9]
匹配至少兩位 0
~9 的數字。
如果逗號也省略掉則表示重複固定的次數
[0-9]
匹配3位數字(.
..) 特徵標群(.
..) 中包含的內容將會被看成乙個整體,和數學中小括號( )的作用相同
表示式 (ab)
* 匹配連續出現 0 或更多個 ab。
如果沒有使用 (..
.) ,那麼表示式 ab* 將匹配連續出現 0 或更多個 b 。
如果在 前加上特徵標群 (..
.) 則表示整個標群內的字元重複 n 次。
還可以在 (
) 中用或字元 | 表示或。
(c|g|p)ar 匹配 car 或 gar 或 par.
| 或運算子
或運算子就表示或,用作判斷條件
(t|t)he|car 匹配 (t|t)he 或 car
轉碼特殊字元
反斜線 \ 在表示式中用於轉碼緊跟其後的字元。用於指定
/ \ +
*. $ ^
|? 這些特殊字元
如果想要匹配這些特殊字元則要在其前面加上反斜線 \
如果想要匹配句子中的 . 則要寫成 \.
^ 號^ 用來檢查匹配的字串是否在所匹配字串的開頭
^(t|t)he 匹配以 the 或 the 開頭的字串。
$ 號$ 號用來匹配字元是否是最後乙個
(at\.
)$ 匹配以 at. 結尾的字串。
簡寫字符集
簡寫 描述
. 除換行符外的所有字元
\w 匹配所有字母數字,等同於 [a-za-z0-
9_]\w 匹配所有非字母數字,即符號,等同於: [
^\w]
\d 匹配數字: [0-
9]\d 匹配非數字: [
^\d]
\s 匹配所有空格字元,等同於: [\t\n\f\r\p
]\s 匹配所有非空格字元: [
^\s]
\f 匹配乙個換頁符
\n 匹配乙個換行符
\r 匹配乙個回車符
\t 匹配乙個製表符
\v 匹配乙個垂直製表符
\p 匹配 cr/lf(等同於 \r\n),用來匹配 dos 行終止符
零寬度斷言(前後預查)
先行斷言和後發斷言都屬於非捕獲簇(不捕獲文字 ,也不針對組合計進行計數)。 先行斷言用於判斷所匹配的格式是否在另乙個確定的格式之前,匹配結果不包含該確定格式(僅作為約束)。
符號 描述
?= 正先行斷言-存在
?! 負先行斷言-排除
?<= 正後發斷言-存在
?<
! 負後發斷言-排除?=
... 正先行斷言?=
... 正先行斷言,表示第一部分表示式之後必須跟著 ?=.
..定義的表示式。
返回結果只包含滿足匹配條件的第一部分表示式。 定義乙個正先行斷言要使用 (
)。在括號內部使用乙個問號和等號: (?=
...)。
表示式 (t|t)he(
?=\sfat) 匹配 the 和 the,在括號中我們又定義了正先行斷言 (
?=\sfat) ,即 the 和 the 後面緊跟著 (空格)fat。?!
... 負先行斷言
負先行斷言 ?
! 用於篩選所有匹配結果,篩選條件為 其後不跟隨著斷言中定義的格式。 正先行斷言 定義和 負先行斷言 一樣,區別就是 = 替換成 ! 也就是 (?!
...)。
表示式 (t|t)he(
?!\sfat) 匹配 the 和 the,且其後不跟著 (空格)fat。
?<=..
. 正後發斷言
正後發斷言 記作(
?<=..
.) 用於篩選所有匹配結果,篩選條件為 其前跟隨著斷言中定義的格式。
表示式 (
?<=
(t|t)he\s)
(fat|mat) 匹配 fat 和 mat,且其前跟著 the 或 the。
?.. 負後發斷言
負後發斷言 記作 (
?..) 用於篩選所有匹配結果,篩選條件為 其前不跟隨著斷言中定義的格式。
表示式 (
?<
!(t|t)he\s)
(cat) 匹配 cat,且其前不跟著 the 或 the。
標誌標誌也叫模式修正符,因為它可以用來修改表示式的搜尋結果。
標誌 描述
i 忽略大小寫。
g 全域性搜尋。
m 多行修飾符:錨點元字元 ^ $ 工作範圍在每行的起始。
忽略大小寫
表示式 /the/gi 表示在全域性搜尋 the,在後面的 i 將其條件修改為忽略大小寫,則變成搜尋 the 和 the,g 表示全域性搜尋。
全域性搜尋
表示式 /
.(at)
/g 表示搜尋 任意字元(除了換行)+ at,並返回全部結果。
多行修飾符
多行修飾符 m 常用於執行乙個多行匹配
表示式 /at(
.)?$/gm 表示小寫字元 a 後跟小寫字元 t ,末尾可選除換行符外任意字元。根據 m 修飾符,現在表示式匹配每行的結尾。
貪婪匹配與惰性匹配
正規表示式預設採用貪婪匹配模式,在該模式下意味著會匹配盡可能長的子串。我們可以使用 ? 將貪婪匹配模式轉化為惰性匹配模式。
makefile學習筆記 書寫規則 規則舉例
20180413 makefile學習筆記 書寫規則 規則舉例 規則包含兩個部分,乙個是依賴關係,乙個是生成目標的方法。在makefile中,規則的順序是很重要的,因為,makefile中只應該有乙個最終目標,其他的目標都是被這個目標所連帶出來的,所以一定要讓make知道你的最終目標是什麼。一般來說...
FPGA verilog學習筆記(二)命名規則
學習 zynq soc 修煉秘籍 記錄筆記 1 頂層檔案 物件 功能 top 例 video oneline top 2 邏輯控制檔案 介於頂層和驅動層檔案之間 物件 ctr 例 ddr ctr.v 3 驅動程式命名 物件 功能 dri 例 led dri.v uart rxd dri.v 4 引數...
python學習筆記 python基礎規則
python 識別符號 在 python 裡,識別符號由字母 數字 下劃線組成。在 python 中,所有識別符號可以包括英文 數字以及下劃線 但不能以數字開頭。python 中的識別符號是區分大小寫的。以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過...