python正規表示式的基礎
正規表示式,又稱為規則表示式,(英語:regular expression,在**中簡寫為regex、regexp或re)電腦科學的乙個概念。正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
使用場景
在python中使用正則需要匯入re
包
import re
首先我們來看兩個例子來體驗一下正規表示式的威力吧:
比如,已知乙個列表:
li = [「chinese」, 「china」, 「english」, 「britain」, 「canada」, 「new zealand」]
找出以ch開頭的字串。
假如存在a=「ab23fg5g67」,提取23,5,67,如何實現?# 法1
li =
["chinese"
,"china"
,"english"
,"britain"
,"canada"
,"new zealand"
]lt =
for i in li:
if i[0:
2]=="ch"
(lt)
# 法2
li =
["chinese"
,"china"
,"english"
,"britain"
,"canada"
,"new zealand"
([i for i in li if i[0:
2]=="ch"
])
正則
字元功能.>>
>
import re
>>
> a=
"ab23fg5g67"
>>
> m=r'[0-9]+'
>>
> num=re.findall(m,a)
>>
> num
['23'
,'5'
,'67'
]
匹配任意乙個字元(除了\n)
匹配中列舉的字元
\d匹配數字(0-9)
\d匹配非數字(\d取反)
\w匹配字元,a-z,a-z,0-9
\w\w取反 字元
功能*匹配前乙個字元出現0次多次或者無限次,可有可無,可多可少
+匹配前乙個字元出現1次多次或者無限次,直到出現一次
?匹配前乙個字元出現1次或者0次,要麼有1一次,要麼沒有
{m}匹配前乙個字元出現m次
{m,}
匹配前乙個字元至少出現m次
{m,n}
匹配前乙個字元出現m到n次
字元功能
^匹配字串開頭
$匹配字串結尾
\b匹配乙個單詞的邊界
\b匹配非單詞的邊界
匹配分組
字元功能
|匹配左右任意乙個表示式
(ab)
將括號中的字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
分組起別名
(?p=name)
引用別名為name分組匹配到的字串
引數說明:
re.group([group1,…])字串或者元組
re.groups([default=none]) tuple
作用:以元組形式返回全部分組截獲的字串
如果沒有成功匹配,返回乙個空元組
.
import re
m=re.match(
'.',
's')
(m.group())
#sm=re.match(
'.',
'd')
(m.group())
#dm=re.match(
'.',
'city'
(m.group())
#cm=re.match(
'.',
'\n'
(m.group())
#attributeerror: 'nonetype' object has no attribute 'group'
re.findall(pattern,str,flags=0)
re.funditer(pattern,str,flags=0)
re.match()和re.search()的區別
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...