python中re库函数的简单用法
-
re.findall(pattern,string)
匹配所有符合正则表达式的字符,返回一个列表
-
re.search(pattern,string)
查找第一个符合正则表达式的字符,返回一个Matcher对象。用group()或groups()方法取值
-
re.match(pattern,string)
查找第一个符合正则表达式的字符,要求完全符合,返回一个Matcher对象。用group()或groups()方法取值
正则表达式中的圆括号()
的作用是对字符或元字符分组。
我错把它的作用认为是将圆括号内的字符看成一个整体。
尽管在一些正则测试网站上,进行匹配时,把括号内的字符看成一个整体来匹配也能匹配到想要的结果。测试网站如:regex101
等
然而在在写python程序的时候,会出现不是我想要的结果。
如果正则表达式中多出使用了圆括号进行分组的话。
在使用findall
方法匹配结果就会只有分组的结果(即括号内表达式匹配的内容),而不是整个表达式所匹配的内容。
如果使用search
方法匹配,对返回的Matcher对象调用group()
方法可以获取完整的结果。但是在需要匹配多个结果时,还得用findall
所以在使用正则表达式时,若像我不太熟悉的话,避免使用圆括号来把一段表达式看成一个整体。