正则表达式的按位或操作
在正则表达式中,可以使用圆括号()来对表达式内的字符进行分组。分组完成后,可以获取组的内容,即圆括号内的内容。
举个例子,考虑以下正则表达式:strA ""patr'http://v.(.*).com/(.*)/(d{6}).htm.*browse'
这个正则表达式中有三个组。
match()函数和group()方法
match()
函数返回一个匹配对象,可以通过该对象的group()
方法来获取组的值。默认情况下,group()
的参数是0,省略不写时,返回整个匹配的字符串。
例如: result (pat, strA)
print((0))
group()
方法的参数是正则表达式内的子组索引。在上面的例子中,有3个组,因此参数范围是0-3:0代表整个字符串,1代表第一个组,2代表第二个组……如果只有一个参数,结果将是一个字符串,如group(2)
将返回第二个组的内容。如果有多个参数,返回的是一个元组,如group(1, 3)
将返回第一个组和第三个组的内容。如果参数超出组索引范围,会引发错误。
groups()方法和子组的索引位置
groups()
方法返回一个元组,其中包含所有匹配的子组。以前面的例子为例:print(())
将返回("baidu", "movie", "133065")
。
还可以使用(子组)
和result.end(子组)
来获取子组在匹配字符串中的索引位置。默认参数是0,即整个字符串。它们返回的是子组在整个字符串中的开始和结束索引位置。
例如:s (1), e result.end(1)
表示()[s:e]
,即获取第一个子组在字符串中的内容。
span()方法和子组的开始和结束位置
span()
方法实际上是start()
和end()
方法的组合。它返回一个元组,其中元素是子组在字符串中的开始和结束位置。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。