Python之正規表示式的使用

2021-08-29 03:01:13 字數 3590 閱讀 3440

在python中的正規表示式裡對萬用字元的使用也相當規範

例如:*  ?  .    [0-9]  [a-z]  [a-z]等;而不同於shell裡,如[[:digit:]] [[:alpha:]]等不能識別

# glob.glob: 返回所有匹配正則的路徑(返回的是乙個列表)

# glob.iglob: 返回所有匹配正則的路徑(返回的是乙個生成器)

# findall方法

# 編寫正則規則

pattern1 = r'home'

pattern2 = r'python'

print(re.findall(pattern1, s))

print(re.findall(pattern2, s))

# 可見findall方法是找出全部匹配規則的字元

# match方法

print(re.match(pattern2, s))

obj = re.match(pattern1, s)

print(obj.group())

# 可見match方法是匹配第乙個字元,若沒有匹配成功返回值未none,匹配成功呼叫group方法列印匹配的值

# search方法

obj1 = re.search(pattern1, s)

obj2 = re.search(pattern2, s)

print(obj1.group())

print(obj2.group())

# 可見search方法揮掃瞄整個字串但值返回第乙個匹配成功的內容

字元類:[pp]ython

westos[pp]

[aeiou]

[a-z]

[a-z]

[a-za-z0-9]

[^0-9]

特殊字元類:

. : 匹配除了\n之外的任意字元; [.\n]

\d :  digit--(數字), 匹配乙個數字字元, 等價於[0-9]

\d : 匹配乙個非數字字元, 等價於[^0-9]

\s :  space(廣義的空格: 空格, \t, \n, \r), 匹配單個任何的空白字元;

\s :  匹配除了單個任何的空白字元;

\w :  字母數字或者下劃線, [a-za-z0-9_]

\w : 除了字母數字或者下劃線, [^a-za-z0-9_]

print(re.findall(r'\s', '\n當前\r文章閱\t讀量為8'))

print(re.findall(r'\s', '\n當前\r文章閱\t讀量為8'))

print(re.findall(r'\w', '12當前python文章閱_讀量為8&%#'))

print(re.findall(r'\w', '12當前python文章閱_讀量為8&%#'))

匹配字元出現次數:*  : 代表前乙個字元出現0次或者無限次;    d*,  .*

+ : 代表前乙個字元出現一次或者無限次;     d+

? : 代表前乙個字元出現1次或者0次;   假設某些字元可省略, 也可以不省略的時候使用

第二種方式:

: 前乙個字元出現m次;

: 前乙個字元至少出現m次;  * == ; + ===

: 前乙個字元出現m次到n次; ? ===

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...

Python之正規表示式

正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...

Python之正規表示式

正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...