正則表達式(python)

re方法

re.search()

re.search(pattern,string,flags=0)
例:re.search(r'love','I love you')php

re.findall()

返回一個符合pattern的所有字符的list。html

re.compile()

p=re.compile(r'[a-z]')
res=re.findall(p,'iLadfaww')
print(res)

['i', 'a', 'd', 'f', 'a', 'w', 'w']
p=re.compile(r'[a-z]+',re.IGNORECASE)
res=p.search('ADSwqefS',2,5)#後兩個參數表示範圍
print(res)

<_sre.SRE_Match object; span=(2, 5), match='Swq'>

代碼

p=re.compile(r'(Love) (You)')
res=p.search('I Love You')
print(res.group(0))
print(res.group(1))
print(res.group(2))

print(res.start())
print(res.end())
print(res.span())

Love You
Love
You
2
10
(2, 10)

編譯標誌

編譯標誌python

編譯標誌有兩個名字:完整名和簡寫名正則表達式

1.ASCII,A:使得\w,\b,\s\d只能匹配ASCII字符
2.DOTALL,S:使得.匹配任何符號,包括換行符
3.IGNORECASE,I:不區分大小寫
4.LOCALE,L:支持當前的語言,區域設置
5.MULTILINE,M:多行匹配,影響^$
6.VERBOSE,X :啓用詳細的正則表達式markdown

正則Pattern

Python3正則表達式特殊符號及用法spa

\d:匹配數字
\D:與\d相反,至關於[^0-9]code

\s:匹配任何空白字符(包含空格,換行符,製表符等),至關於[\t\n\r\f\v]
\S:與上相反htm

\w匹配任何單詞字符
\W與上相反ip

\b匹配單詞的開始或者結束。\b在字符類中可表示空格
\B與上相反字符串

.:匹配除換行符之外的任何字符

|:或

*:匹配前面的表達式0次或者而屢次=={0,}
+:匹配前面的表達式1次或者屢次=={1,}
?:匹配前面的表達式0次或者1次=={0,1}

\:
1.轉義字符
2.相似於\d這種用途
3.引用序號對應的子組所對應的字符串(兩位數)
r'(ABC)(.com)\2'匹配的就是'ABC.com.com’
4.(三位數,首位可爲0)表示八進制數所表明的ASCII碼

[..]:字符類,匹配所包含的任意一個字符

^:
1.匹配字符串的開始位置
2.若是設置了re.MULTILINE標誌,則表示換行符以後的位置
3.[^..]取反,只能放在最開頭。若不在最開頭,則表示^自己。

%
1.匹配字符串的結束位置,
2.若是設置了re.MULTILINE標誌,則表示換行符以前的位置

{M,N}:匹配前面的內容M~N次

[a-z]:匹配a-z

ab{3}z:匹配abbbc

ab{3,10}c:匹配a(3-10個)bc

零寬斷言

\b ^ $ \A \Z 等用於指定位置,這個位置應知足的必定的條件(即斷言),稱爲零寬斷言。

前向確定斷言

(?=exp)

abc(?=.com)只會匹配後面緊跟着.comabc

前向否認斷言

(?!exp)

後向確定斷言

(?<=exp)

例:(?<=abc).com只會匹配前面爲abc.com

後向否認斷言

(?<!exp)

貪婪與非貪婪

默認是貪婪模式(在符合條件下儘量多的匹配):

res=re.search(r'ABC{2,8}','ABCCCCCC')
print(res)

<_sre.SRE_Match object; span=(0, 8), match='ABCCCCCC'>

能夠利用?變爲非貪婪模式

res=re.search(r'ABC{2,8}?','ABCCCCCC')
print(res)

<_sre.SRE_Match object; span=(0, 4), match='ABCC'>

捕獲

使用(....)會捕獲其中內容

使用(?:...)不會捕獲其中內容

例子

匹配ip地址

res=re.search(r'((\d\d|\d|1\d\d|2[0-4]\d|25[0-5])\.){3}((\d\d|\d|1\d\d|2[0-4]\d|25[0-5]))','2.1.1.1')

相關博客:Python3如何優雅地使用正則表達式

相關文章
相關標籤/搜索