正則表達式的按位或操作
在正則表達式中,可以使用圓括號()來對表達式內(nèi)的字符進行分組。分組完成后,可以獲取組的內(nèi)容,即圓括號內(nèi)的內(nèi)容。 舉個例子,考慮以下正則表達式:strA ""patr'http://v.(.*).c
在正則表達式中,可以使用圓括號()來對表達式內(nèi)的字符進行分組。分組完成后,可以獲取組的內(nèi)容,即圓括號內(nèi)的內(nèi)容。
舉個例子,考慮以下正則表達式:strA ""patr'http://v.(.*).com/(.*)/(d{6}).htm.*browse'
這個正則表達式中有三個組。
match()函數(shù)和group()方法
match()
函數(shù)返回一個匹配對象,可以通過該對象的group()
方法來獲取組的值。默認情況下,group()
的參數(shù)是0,省略不寫時,返回整個匹配的字符串。
例如: result (pat, strA)
print((0))
group()
方法的參數(shù)是正則表達式內(nèi)的子組索引。在上面的例子中,有3個組,因此參數(shù)范圍是0-3:0代表整個字符串,1代表第一個組,2代表第二個組……如果只有一個參數(shù),結(jié)果將是一個字符串,如group(2)
將返回第二個組的內(nèi)容。如果有多個參數(shù),返回的是一個元組,如group(1, 3)
將返回第一個組和第三個組的內(nèi)容。如果參數(shù)超出組索引范圍,會引發(fā)錯誤。
groups()方法和子組的索引位置
groups()
方法返回一個元組,其中包含所有匹配的子組。以前面的例子為例:print(())
將返回("baidu", "movie", "133065")
。
還可以使用(子組)
和result.end(子組)
來獲取子組在匹配字符串中的索引位置。默認參數(shù)是0,即整個字符串。它們返回的是子組在整個字符串中的開始和結(jié)束索引位置。
例如:s (1), e result.end(1)
表示()[s:e]
,即獲取第一個子組在字符串中的內(nèi)容。
span()方法和子組的開始和結(jié)束位置
span()
方法實際上是start()
和end()
方法的組合。它返回一個元組,其中元素是子組在字符串中的開始和結(jié)束位置。