正規表示式筆記

2021-07-30 17:03:24 字數 3401 閱讀 9990

1.preg_grep($model,$array,$flags)函式返回與模式匹配的陣列單元

$model:表示匹配模式,用兩個斜槓包含起來
$array:表示即將要匹配的陣列
$flags:(可選)如果設定為preg_grep_invert, 這個函式返回$array中與$model不匹配的元素組成的陣列.

2.preg_match($model,$string,$matches,$flags,$offset)函式在字串中搜尋模式,如果有匹配,返回true,如果沒有匹配,返回false,在第一次匹配成功以後將會停止搜尋

$model:表示匹配模式,用兩個斜槓包含起來
$string:表示即將要匹配的字串
$matches:(可選)搜尋結果。 $matches[0]將包含完整模式匹配到的文字,$matches[1]表示第乙個匹配到的文字,以此類推。
$flags:(可選)如果設定為preg_offset_capture,這會將$matches中的每個元素成為乙個由第0個元素是匹配到的字串,第1個元素是該匹配字串 在目標字串subject中的偏移量。
$offset:(可選)指定從目標字串的某個位置開始搜尋(單位是位元組)。

3.preg_match_all($model,$string,$matches,$flags,$offset)函式在字串中匹配模式的所有出現

$flags:可選引數
preg_pattern_order:(預設)結果排序為$matches[0]儲存完整模式的所有匹配, $matches[1] 儲存第乙個子組的所有匹配,以此類推。
preg_set_order:結果排序為$matches[0]包含第一次匹配得到的所有匹配(包含子組),$matches[1]是包含第二次匹配到的所有匹配(包含子組)的陣列,以此類推。
preg_offset_capture:使得matches中的每乙個匹配結果字串元素,使其成為乙個第0個元素為匹配結果字串,第1個元素為 匹配結果字串在subject中的偏移量。

4.preg_quote($string,$delimiter)在每個對於正規表示式語法而言有特殊含義的字元前插入乙個反斜線。

這些特殊字元包含: . \ + * ? [ ^ ] $ ( ) = ! < > | : -
注意:/不是正規表示式的特殊符號
5.preg_replace($model,$replacement,$string,$limit,$count)函式搜尋到所有匹配,然後替換成想要的字串返

回出來。

$replacement:用於替換的字串或字串陣列。
$limit;(可選)每個模式在每個subject上進行替換的最大次數。預設是 -1(無限)。
$count:(可選)返回替換的次數
6.preg_split($model,$string,$limit,$flags)通過乙個正規表示式分隔字串

$limit:將限制分隔得到的子串最多只有limit個,返回的最後乙個子串將包含所有剩餘部分。
$flags:可以是任何下面標記的組合(以位或運算 | 組合):
preg_split_no_empty:preg_split() 將進返回分隔後的非空部分。
preg_split_delim_capture:用於分隔的模式中的括號表示式將**獲並返回。
preg_split_offset_capture:對於每乙個出現的匹配返回時將會附加字串偏移量。

01)+表示匹配任何乙個或多個前導字元(h+表示乙個或多個h,不能是零個)

02)?表示匹配任何零個或乙個前導字元(h?表示零個或乙個h,不能是多個)

03)*表示匹配任何零個或多個前導字元(h*表示零個或多個h)

04).表示匹配任何乙個字元(.*表示零個或多個任意字元)

05)表示匹配三個前導字串

06)表示匹配三到五個前導字串

07)表示匹配至少三個前導字串

08)|表示選擇符號,相當於或者,只要有乙個匹配就返回true

09)^表示匹配字串開頭

10)$表示匹配字串結尾

11)^和$一起使用,表示等於(一般不用這樣的表達方式,直接用==判斷就可以了)

12)()表示包含乙個分組或者定義個反引用,可以使用$1,$2提取

[a-z]表示匹配任何包含乙個小寫字母 a-z的字元

[0-9]表示匹配任何包含乙個數字 0-1的字元

[a-za-z0-9]匹配任何包含乙個小寫字母 a-z,大寫字母a-z,數字 0-1的字串

[^abc]表示任何不包含abc的字元

\d表示[0-9]

\d表示除[0-9]之外的字串

\w表示[a-za-z0-9_]

\w表示除[a-za-z0-9_]之外的字串

\s匹配任何空白字元

\s匹配任何非空白字元

\b表示到達單詞邊界,邊界可以理解為空格或者末尾

\b表示沒有到達邊界

\表示匹配正則中的特殊字元

i表示不區分大小寫

m表示在匹配首內容或者尾內容時候採用多行識別匹配

x表示忽略正則中的空白

a表示強制從頭開始匹配

u表示禁止貪婪匹配,只跟蹤到最近的乙個匹配符並結束

正規表示式 正規表示式函式 筆記

筆記直接使用pycharm製作,需要原始檔請私聊。正規表示式函式 1.match 2.search 3.全域性匹配函式 全域性匹配 re.compile 正規表示式 findall 資料 import re string poythonydasadcasa pat2 p.y 懶惰模式執行 較精準 r...

正規表示式筆記

不同的語系編碼的順序不一樣 lang c 0 1 2 3 a b c d z a b c d z lang zh cn 0 1 2 3 4 a a b b c c z z 使用正規表示式時,需要留意環境的語系是什麼,否則會有不同的結果 alnum 英文大小寫字元及數字 0 9 a z a z alp...

正規表示式筆記

d 0 9中的任意乙個數字 w a z,a z,0 9,中的任意乙個,即字母數字下劃線 s 空格,製表符,換頁符等空白字元的其中任意乙個 小數點可以匹配換行符 n 以外的任意乙個字元 匹配某範圍內的任意乙個字元 ab9 匹配 a b 9 中的任意乙個 abc 匹配abc之外的任意乙個字元 a g 匹...