python正則表達式

1. 什麼是正則表達式?

(1)正則表達式由普通字符和元字符組成,通過此模式,用來匹配特定的內容。

(2)普通字符:包括大小寫字母、數字。

(3)元字符:是一些特殊字符,這些字符並不表示字面上的含義,而會被解釋爲一些特定的含義。

(4)正則表達式區分大小寫。

2.元字符

(1)匹配字符

.: 匹配任意單個字符
[]: 匹配指定範圍內的任意單個字符
[0-9]: 數字
[a-z]: 小寫字母
[A-Z]: 大寫字母
[^ ]: 匹配指定範圍外的任意單個字符(出現在[]中的^代表排除)

(2)匹配次數

*: 匹配前面的一個字符任意次,包括0次
+: 匹配其前面的字符1次或多次
?: 匹配其前面的字符1次或0次
{m, n}: 匹配其前面的字符至少m次,至多n次。

(3)匹配位置

^:行首
$:行尾
( ):分組, 作爲一個整體,\1引用第一個小括號內匹配的內容,以此類推\2, \3
A|B:A整體 或者 B整體

(4)特殊符號

\d 匹配任何數字
\D 匹配非數字字符
\w 匹配字母、數字與下劃線
\W 匹配不是字母、數字與下劃線的字符
\s 匹配空白字符
\S 匹配非空白字符
\b 匹配單詞的開始和結束
\B 匹配不是單詞的開始和結束的位置

3.正則表達式模塊re

正則表達式字符串: r’正則表達式’

(1)常用方法
compile(): 編譯正則表達式
findall(): 返回匹配列表(如果有小括號, 返回小括號內正則匹配的內容)
match(): 從字符串的開頭對模式進行匹配,如果成功,則返回一個對象, 如果失敗, 則返回None。

>>> import re
>>> m = re.match('foo', 'foo')
>>> m
<_sre.SRE_Match object at 0x7f77fa6af4a8>
>>> m.group()
'foo'
>>> m = re.match('foo', 'bar')
>>> m
>>> m.group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

search(): (在字符串任意位置)如果搜索到成功的匹配對象, 否則返回None。

>>> m = re.match('foo', 'seafood')
>>> m
>>> m.group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>> m = re.search('foo', 'seafood')
>>> m
<_sre.SRE_Match object at 0x7f77fa6af4a8>
>>> m.group()
'foo'

split(): 正則表達式作爲分隔符把字符串分隔爲一個列表,返回列表
sub()/subn(): 將某字符串中匹配正則表達式模式的部分進行替換。

(2)match()/search() 返回對象的方法
group():返回整個正則表達式匹配的字符串,同group(0)。
group(i): 正則表達式中第i個”()”括起來部分匹配的內容
groups():返回被整個正則表達式匹配的字符串組成的元組
start():返回匹配開始的位置
end():返回匹配結束的位置
span():返回一個元組包含匹配(開始, 結束)的位置

發佈了48 篇原創文章 · 獲贊 141 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章