【Python 正則表達式】解析 re.match()


正則表達式實例:

#!/usr/bin/python
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!"

正則表達式:

r'(.*) are (.*?) .*'

解析:

首先,這是一個字符串,前面的一個r表示字符串為非轉義的原始字符串,讓編譯器忽略反斜杠,也就是忽略轉義字符。但是這個字符串里沒有反斜杠,所以這個r可有可無。
(.) 第一個匹配分組,. 代表匹配除換行符之外的所有字符。
(.?) 第二個匹配分組,.? 后面多個問號,代表非貪婪模式,也就是說只匹配符合條件的最少字符
后面的一個 .* 沒有括號包圍,所以不是分組,匹配效果和第一個一樣,但是不計入匹配結果中。
matchObj.group() 等同於 matchObj.group(0),表示匹配到的完整文本字符

matchObj.group(1) 得到第一組匹配結果,也就是(.*)匹配到的

matchObj.group(2) 得到第二組匹配結果,也就是(.*?)匹配到的

因為只有匹配結果中只有兩組,所以如果填 3 時會報錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM