用於生成正則表達式對象,供 match() 和 search() 這兩個函數使用。
從起始位置開始匹配,匹配不成功返回None
import re pattern = re.compile('cat') print(re.match(pattern,'cat')) print(re.match(pattern,'dog'))
第一個字符串匹配成功,第二個字符串匹配失敗
<_sre.SRE_Match object; span=(0, 3), match='cat'> None
上面的例子是正則表達式最簡單的應用,實際應用過程常用的元字符如下圖所示:
import re pattern = re.compile('c.t') print(re.match(pattern,'cat')) print(re.match(pattern,'c9t')) print(re.match(pattern,'c>t')) print(re.match(pattern,'caat'))
<_sre.SRE_Match object; span=(0, 3), match='cat'> <_sre.SRE_Match object; span=(0, 3), match='c9t'> <_sre.SRE_Match object; span=(0, 3), match='c>t'> None
import re pattern = re.compile("ca*t") print(re.match(pattern, 'cat')) print(re.match(pattern, 'ct')) print(re.match(pattern, 'caaaaaaat')) print(re.match(pattern, 'ca7'))
<_sre.SRE_Match object; span=(0, 3), match='cat'> <_sre.SRE_Match object; span=(0, 2), match='ct'> <_sre.SRE_Match object; span=(0, 9), match='caaaaaaat'> None
import re pattern = re.compile("ca+t") print(re.match(pattern, 'cat')) print(re.match(pattern, 'ct')) print(re.match(pattern, 'caaaaaaat')) print(re.match(pattern, 'ca7'))
<_sre.SRE_Match object; span=(0, 3), match='cat'> None <_sre.SRE_Match object; span=(0, 9), match='caaaaaaat'> None
import re pattern = re.compile("ca?t") print(re.match(pattern, 'cat')) print(re.match(pattern, 'ct')) print(re.match(pattern, 'caaaaaaat'))
<_sre.SRE_Match object; span=(0, 3), match='cat'> <_sre.SRE_Match object; span=(0, 2), match='ct'> None
import re pattern = re.compile("ca{5}t") print(re.match(pattern, 'cat')) print(re.match(pattern, 'caaaaat')) print(re.match(pattern, 'caaaaaaaaaaaaaaaaat'))
None <_sre.SRE_Match object; span=(0, 7), match='caaaaat'> None
import re pattern = re.compile("ca{3,5}t") print(re.match(pattern, 'cat')) print(re.match(pattern, 'caaat')) print(re.match(pattern, 'caaaat')) print(re.match(pattern, 'caaaaat')) print(re.match(pattern, 'caaaaaaaaaaaaaaaaat'))
None <_sre.SRE_Match object; span=(0, 5), match='caaat'> <_sre.SRE_Match object; span=(0, 6), match='caaaat'> <_sre.SRE_Match object; span=(0, 7), match='caaaaat'> None
import re pattern = re.compile("c[a-z]t") print(re.match(pattern, 'c9t')) print(re.match(pattern, 'cbt')) print(re.match(pattern, 'cct')) print(re.match(pattern, 'czt')) print(re.match(pattern, 'cAt'))
None <_sre.SRE_Match object; span=(0, 3), match='cbt'> <_sre.SRE_Match object; span=(0, 3), match='cct'> <_sre.SRE_Match object; span=(0, 3), match='czt'> None
import re pattern = re.compile("c\dt") print(re.match(pattern, 'c9t')) print(re.match(pattern, 'cbt')) print(re.match(pattern, 'c88t')) print(re.match(pattern, 'czt')) print(re.match(pattern, 'c7t'))
<_sre.SRE_Match object; span=(0, 3), match='c9t'> None None None <_sre.SRE_Match object; span=(0, 3), match='c7t'>
import re pattern = re.compile("c\Dt") print(re.match(pattern, 'c9t')) print(re.match(pattern, 'cbt')) print(re.match(pattern, 'c88t')) print(re.match(pattern, 'czt')) print(re.match(pattern, 'c7t'))
None <_sre.SRE_Match object; span=(0, 3), match='cbt'> None <_sre.SRE_Match object; span=(0, 3), match='czt'> None