正規表示式

2021-09-24 02:00:48 字數 2718 閱讀 2856

\d

匹配乙個數字

\w匹配乙個字母

.可以匹配任意字元

*需要字串裡完全符合,匹配規則,就匹配

+表示至少乙個字元

?表示0個或1個字元

表示n個字元

表示n-m個字元

[ ]表示範圍

(pip)

可以匹配大小寫p開頭的字串

^字串開始位置與匹配規則符合就匹配,否則不匹配

$字串結束位置與匹配規則符合就匹配,否則不匹配

\轉義字元(由於python字串本身也用 \ 轉義所以不常用)

r』abc-001』

代替 \ 轉義字元

\s匹配空格和tab等空白符––

什麼是正規表示式的貪婪與非貪婪匹配

如:string str=「abcaxc」;

patter p=「ab.*c」;

貪婪匹配:正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到:abcaxc(ab.*c)。

非貪婪匹配:就是匹配到結果就好,就少的匹配字元。如上面使用模式p匹配字串str,結果就是匹配到:abc(ab.*c)。

re模組

import re

test = '一堆字串'

if re.match(r'正規表示式',test):

print('成功')

else:

print(』失敗『)

import re #第一步,要引入re模組

test = '一堆字串'

a = re.findall("正規表示式",test) #第二步,呼叫模組函式

^的用法

import re   #第一步,要引入re模組

a = re.findall("^匹配規則", "匹配規則這個字串是否匹配")

#字串開始位置與匹配規則符合就匹配,否則不匹配

[^a-z]反取,匹配出除字母外的字元,元字元如果寫到字符集裡就是反取

import re   #第一步,要引入re模組

a = re.findall("[^a-z]", "匹配s規則這s個字串是否s匹配f規則則re則則則") #反取,匹配出除字母外的字元

print(a) #以列表形式返回匹配到的字串

#列印出 ['匹', '配', '規', '則', '這', '個', '字', '符', '串', '是', '否', '匹', '配', '規', '則', '則', '則', '則', '則']

✳字元的用法

import re   #第一步,要引入re模組

a = re.findall("匹配規則*", "這個字串是否匹配規則則則則則") #需要字串裡完全符合,匹配規則,就匹配,(規則裡的*元字元)前面的乙個字元可以是0或多個原本字元

print(a) #以列表形式返回匹配到的字串

#列印出 ['匹配規則則則則則']

+元字元的用法

import re   #第一步,要引入re模組

a = re.findall("匹配+", "匹配配配配配規則這個字串是否匹配規則則則則則") #需要字串裡完全符合,匹配規則,就匹配,(規則裡的+元字元)前面的乙個字元可以是1個或多個原本字元

print(a) #以列表形式返回匹配到的字串

#列印出 ['匹配配配配配', '匹配']

?元字元的用法

import re   #第一步,要引入re模組

a = re.findall("匹配規則?", "匹配規這個字串是否匹配規則則則則則") #需要字串裡完全符合,匹配規則,就匹配,(規則裡的?元字元)前面的乙個字元可以是0個或1個原本字元

print(a) #以列表形式返回匹配到的字串

#列印出 ['匹配規', '匹配規則']

{}元字元,範圍

import re   #第一步,要引入re模組

a = re.findall("匹配規則", "匹配規這個字串是否匹配規則則則則則") #匹配前乙個字元m次,匹配前乙個字元m至n次,若省略n,則匹配m至無限次

print(a) #以列表形式返回匹配到的字串

#列印出 ['匹配規則則則']

[0-9a-za-z_]可以匹配乙個數字、字母或者下劃線

[0-9a-za-z_]+可以匹配至少由乙個數字、字母或者下劃線組成的字串,比如』a100』,『0_z』,'py3000』等等;

[a-za-z_][0-9a-za-z_]可以匹配由字母或下劃線開頭,後接任意個由乙個數字、字母或者下劃線組成的字串,也就是python合法的變數(類似__init)

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

參考源**

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

非負整數 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正規表示式 編寫正規表示式

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