search()函数的用法。
1.re.search()函数
1、re.search(pattern,string, flags=0)①pattern,正则表达式,string,查询的字符串。②从左向右搜铂珍书揽索整个字符串(string), 找到第一个匹配样式(pattern),就返回一个相应的匹配对象。③如果整个字符串都没有匹配,就返回一个None 。④与match()函数的区别就是,不需要匹配字符串开始,只要字符串中有pattern即可。
2、即使有多行,也能定位pattern第一次出现的位置;
3、如要匹配某一行的行头,可以使用第三个参墙绅褡孛数flags=re.MULTILINE;此时开始符号^, 不瞽攥涛徭但能匹配开始,还能匹配非第一行的开始。但match()函数即使使用了多行标记re.MULTILINE,也不能匹配非第一行。
4、如果要匹配多行的内容,需要使用re.S 标记。此时 .(点) 特殊字符匹配包括换行符的任何字符。
2.使用循环来匹配多个字符串
1、拷贝网上的源代码,保存为txt文档。根据内容写出正则表达式。
2、将文档读取到列表:①因为文档内容有中文,读取用utf8编码。②用readlines,读取每行,生成列表。
3、遍历列表:①先用 if 语句判断每行是否能返回匹配对象。②如果有就用就接收对象,输出检查。
4、提取分组:使用匹配对象的group()函数,提取分组()的内容,并格式化输出。
5、如果要将搜索结果保存到文本,最好把读取列表放到with语句外。然后再写入文档。