正規表示式

2021-09-27 14:03:35 字數 2398 閱讀 8455

import re

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

re.match(pattern, string, flags=0)

pattern 匹配的正規表示式

string 要匹配的字串。

flags 標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等

print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配

print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配

(0,3)

none

string, flags=0)

引數的意思和match一樣

print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配

print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配

(0, 3)

(11, 14)

/只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配。

compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。

re.i 忽略大小寫

re.l 表示特殊字符集 \w, \w, \b, \b, \s, \s 依賴於當前環境

re.m 多行模式

re.s 即為 . 並且包括換行符在內的任意字元(. 不包括換行符)

re.u 表示特殊字符集 \w, \w, \b, \b, \d, \d, \s, \s 依賴於 unicode 字元屬性資料庫

re.x 為了增加可讀性,忽略空格和 # 後面的注釋

+表示使正規表示式匹配1次或多次

.表示匹配任意乙個字元

?表示使正規表示式匹配前乙個正規表示式0次或者1次重複

*表示使正規表示式匹配前乙個正規表示式0次或者多次重複

>>>import re

>>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.i) # re.i 表示忽略大小寫

>>> m = pattern.match('hello world wide web')

>>> print m # 匹配成功,返回乙個 match 物件

<_sre.sre_match object at 0x10bea83e8>

>>> m.group(0) # 返回匹配成功的整個子串

'hello world'

>>> m.span(0) # 返回匹配成功的整個子串的索引

(0, 11)

>>> m.group(1) # 返回第乙個分組匹配成功的子串

'hello'

>>> m.span(1) # 返回第乙個分組匹配成功的子串的索引

(0, 5)

>>> m.group(2) # 返回第二個分組匹配成功的子串

'world'

>>> m.span(2) # 返回第二個分組匹配成功的子串

(6, 11)

>>> m.groups() # 等價於 (m.group(1), m.group(2), ...)

('hello', 'world')

>>> m.group(3) # 不存在第三個分組

traceback (most recent call last):

file "", line 1, in indexerror: no such group

/pattern = re.compile(r'\d+') # 查詢數字

result1 = pattern.findall('runoob 123 google 456')

result2 = pattern.findall('run88oob123google456', 0, 10)

print(result1)

print(result2)

['123', '456']

['88', '12']

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...