match和findall的区别以及有括号和无括号的区别
strvar = "hello\n\nworld" find_re = re.compile("hello[.|\n]*([\S]*)"); rs = find_re.match(strvar); print rs.groups()
#输出('world',) rs = find_re.findall(strvar); for x in rs: print x;
#输出world
match是查找到匹配的字符串,也就是括号内的字符串,match应该是从一个字符串里面过滤出我们括号内需要的字符串,所以准确来讲match更像是过滤操作
findall则是从一个字符串里面查找到对应的字符串,直到遇见换行符或者结束符
findall会查找所有匹配的文本,当找到第一个匹配的后,会从第一个匹配的字符串结束位置开始查找
如果上面我们在compile的时候把[.|\n]改成[.],那么正则只会查找到hello\n就停止,这点上感觉有点类似于sed了