正規表示式筆記

2021-09-27 03:20:12 字數 2109 閱讀 2471

正規表示式由四部分組成

/^\d$/i

a)定界符						//

b)原子 \d

c)元字元 限制匹配次數

d)模式修改符 i不區分大小寫

1、基礎符號

(1)+:代表前面的字元至少出現一次

(2)*:前面的字元可以出現也可以不出現,或者出現多次

(3)?:前面的字元最多可以出現一次,也可以不出現,或知名乙個非貪婪模式

2、特殊的字元

(1):匹配

輸入字元

串的結尾

的位置,

要匹

配:匹配輸入字串的結尾的位置,要匹配

:匹配輸入字

符串的結

尾的位置

,要匹配

字元本身需要新增$,\d$表示必須以數字結束。

(2)():標記乙個子表示式的開始和結束的位置, ()表示的就是要提取的分組(group)

匹配到的資料存起來,以備下次使用

<?php

$string = 'google 123,456';

$pattern = '/(\w+) (\d+),(\d+)/';

$replacement = 'runoob $,$3';

echo preg_replace($pattern, $replacement, $string);

輸出結果:runoob 123,456

(3):標記乙個中括號的開始,可以用來表示範圍,[a-za-z_)]表示匹配英文本母的大小寫,以及乙個下劃線

[a-za-z_][0-9a-za-z_]更精確地限制了變數的長度是1-20個字元(前面1個字元+後面最多19個字元)。

(4)\:將下乙個字元標記為特殊字元

(5)^:匹配字串的其起始位置 exp:^\d表示必須以數字開頭。

(6){}:匹配輸入字串的開始,詳細見限定符

(7)|:在兩項之間的選擇, a|b可以匹配a或b

(8).:可以匹配任意字元

3、限定符

(1){n}:匹配n次

(2){n,}:至少匹配n次

(3){n,m}:至少匹配n次 最多匹配m次

(4)* :匹配 前面的子表示式零次或多次

(5)+ :匹配前面的子表示式一次或多次

(6)?:匹配前面的子表示式零次或一次

(7)\d:匹配數字

(8)\d:匹配非數字

(9)\w:匹配字母數字下劃線

(10)\w:匹配非字母

(11)\s:匹配乙個空格

(12)/i : 表示匹配的時候不區分大小寫

(13)/g :表示該表示式將用來在輸入字串中查詢所有可能的匹配,返回的結果可以是多個。如果不加/g最多隻會匹配乙個

(14)/m :表示多行匹配,什麼是多行匹配呢?就是匹配換行符兩端的潛在匹配。影響正則中的^$符號

4、貪婪匹配

(1)貪婪匹配的原則是盡可能的,像*和+,加上?號變成非貪婪匹配

example:

由於python的字串本身也用\轉義,使用python的r字首,就不用考慮轉義的問題了

(1):

>>> t = '19:05:30'

>>> m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)

>>> m.groups()

('19', '05', '30')

(2):

>>> m = re.match(r'^(\d)-(\d)$', '010-12345')

>>> m

<_sre.sre_match object; span=(0, 9), match='010-12345'>

>>> m.group(0)

'010-12345'

>>> m.group(1)

'010'

>>> m.group(2)

'12345'

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

筆記直接使用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 匹...