正則入門簡易

2022-05-18 11:19:06 字數 1683 閱讀 2550

表1.常用的特殊**

.    匹配除換行符以外的任意字元

\w  匹配字母或數字

\s  匹配任意的空白符

\d  匹配數字

\b  匹配單詞的開始或結束

^  匹配字串的開始

$   匹配字串的結束

表2.常用的量詞

*  重複零次或更多次

+  重複一次或更多次

?  重複零次或一次

重複n次

重複n次或更多次

重複n到m次

表3.常用的反義**

\w  匹配任意不是字母和數字的字元

\s  匹配任意不是空白符的字元

\d  匹配任意非數字的字元

\b  匹配不是單詞開頭或結束的位置 

[^x]  匹配除了x以外的任意字元

[^aeiou  匹配除了aeiou這幾個字母以外的任意字元

表4.分組語法

(exp)  匹配exp,並捕獲文字到自動命名的組裡

(?exp)  匹配exp,並捕獲文字到名稱為name的組裡

(?:exp)  匹配exp,不捕獲匹配的文字

(?=exp)  匹配exp前面的位置

(?<=exp)  匹配exp後面的位置

(?!exp)  匹配後面跟的不是exp的位置

(?(?#comment  這種型別的組不對正規表示式的處理產生任何影響,只是為了提供讓人閱讀注釋

表5.懶惰量詞

*?  重複任意次,但盡可能少重複

+?  重複1次或更多次,但盡可能少重複

??  重複0次或1次,但盡可能少重複

?  重複n到m次,但盡可能少重複  

n,}?  重複n次以上,但盡可能少重複

常用的一些元素

\a  報警字元(列印它的效果是電腦嘀一聲)

\b  通常是單詞分界位置,但如果在字元類裡使用代表退格

\t  製表符,tab

\r  回車

\v  豎向製表符

\f  換頁符

\n  換行符

\e  escape

\0nn  ascii**中八進位制**為nn的字元

\xnn  ascii**中十六進製制**為nn的字元

\unnnn  unicode**中十六進製制**為nnnn的字元

\cn  ascii控制字元。比如\cc代表ctrl+c

\a  字串開頭(類似^,但不受處理多行選項的影響)

\z  字串結尾或行尾(不受處理多行選項的影響)

\z  字串結尾(類似$,但不受處理多行選項的影響)

\g  當前搜尋的開頭

\p  unicode中命名為name的字元類,例如\p

(?>exp)  貪婪子表示式

(?-exp)  平衡組

(?-exp)  平衡組

(?im-nsx:exp)  在子表示式exp中改變處理選項

(?im-nsx)  為表示式後面的部分改變處理選項

(?(exp)yes|no)  把exp當作零寬正向先行斷言,如果在這個位置能匹配,使用yes作為此組的表示式;否則使用no

(?(exp)yes)  同上,只是使用空表示式作為no

(?(name)yes|no)  如果命名為name的組捕獲到了內容,使用yes作為表示式;否則使用no

(?(name)yes)  同上,只是使用空表示式作為no

CMake簡易入門

首發於fxm5547的部落格 cmake minimum required version 2.6 project itest c 標準 set cmake cxx standard 11 指定參與編譯的原始檔 add executable itest src main.cpp src cal ca...

MySQL簡易入門

mysql 是乙個網際網路繞不過去的坎,總覺得很簡單,一切似乎都圍繞著 curd,但是不能脫離這個核心,本次的部落格其 mysql 的一些基本概念作為主題,力求用自己的語言,將其中的概念說清楚。今天是在銀川的第二天,第一次坐完飛機,現在在見家長的過程中,偷得片刻悠閒,寫點東西作為總結 mysql 可...

Python簡易入門

字串可用單引號 雙引號和三引號。轉義字元 可以轉義很多字元,比如 n表示換行,t表示製表符,b表示退格符,字元 本身也需要轉義,因此,表示的字元就是 取子字串有兩種方法,一種是用 索引,一種是用切片運演算法 檢視變數型別 type 型別轉換 列表 list 元組 tuple 集合 set 字典 di...