正規表示式初識

2021-07-25 09:23:31 字數 1426 閱讀 8056

-用來指定乙個字元集合(字元直接是「或」的關係,不是乙個特定的字串,跟『abc』不同):[abc],[a-z]

-在字符集中,元字元$不起作用[abc$],[$abc],元字元^在字串尾不起作用

[abc^],就是普通字元。

-元字元在字符集首表示匹配補集,[^abc]就是匹配除了a,b,c以外的字元。

-匹配行首,位於字串首。制定規則res = r'^abc',為匹配行首是abc;規則s = r'^[abc]',為匹配行首是a,b,c.

-匹配行尾,位於字串尾。定規則res = r'abc$',為匹配行尾是abc;規則s = r'[abc]$',為匹配行尾是a,b,c.

-反斜槓後可以加不同的字元表示不同的特殊意義

-也可以取消元字元:\\ 或\[

\d 匹配任何十進位制數,相當於[0-9];

\d 匹配任何非十進位制數,相當於[^0-9];

\s 匹配任何空白字元:相當於[\t\n\r\f\v];

\s 匹配任何非空白字元:相當於[^\t\n\r\f\v];

\d 匹配任何字母數字字元,相當於[a-za-z0-9_];#注:難怪很多密碼或郵箱只允許下劃線和字母數字。

\d 匹配任何非字母數字字元,相當於[^a-za-z0-9_]。

舉個栗子:

import re

r = r'010-\d\d\d\d\d\d\d\d'#**號碼

re.findall(r, '010-87654321')

結果[010-87654321]#匹配**號碼格式,輸出

-正規表示式第一功能是能夠匹配不定長的字符集,另乙個功能就是可以指定正規表示式的一部分的重複次數。

-指定前乙個字元可以被匹配0次或更多次,而不是只有一次。匹配引擎會試著重複盡可能多的次數。

-表示匹配一次或更多次。

-*和+之間的不同在於:*下,字元可以不出現(匹配0次),而+則要求至少出現一次。

-匹配一次或零次,可以認為用於標記某事物是可選的(0 or 1)。

再乙個栗子:

>>>r = r'^010-?\d'#**號碼的規則,有人不會打-,所以用-?表示-可選

>>>re.findall(r, '010-12345678')

['010-12345678']
-其中m和n是十進位制整數。意思是至少有m個重複,至多到n次重複。
三隻栗子:

>>>r = r'a'

>>>re.findall(r, 'aaaaa')

['aaa', 'aa']#aaaaa是5個a,而不是乙個組合
-忽略m,預設下邊界為0 ;忽略n,會使上邊界無窮大。

-等於*,等於+,而則等於?。所以在應用中,優先選擇*,+,?.

正規表示式 1 初識正規表示式

簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...

正規表示式初識

正規表示式 為轉義如 表示.郵箱匹配 grep e 0 9a za z 0 9a za z a za z a.txt 查詢郵箱 a z 所有小寫字母 a z 所有大寫字母 0 9 所有數字 0 9 所有非數字 表達取反 0 9 a z 0個或多個小寫字母 a z 至少出現一次小寫字母 a z 出現0...

初識正規表示式

正規表示式 1.概念 一種字串匹配規則 1.1 判斷 input進來的 是不是qq號 是不是手機號 身份證號 1.2 有乙個檔案,要求把手機號 qq號 取出來 2.能做什麼 2.1 可以制定乙個規則 來確認某乙個字串是否符合規則的內容 從打斷的字串中找到符合規則的內容 2.2 程式領域 1,登入程式...