python爬虫学习22
这里写目录标题
三、正则表达式
3.search方法
之前我们学习了正则表达式中的match方法,请大家回想一下match方法的前提,没错match方法是从字符串开头开始匹配,那么一旦开头不匹配,意味着整个匹配就废了:
# match 的局限性
import re
content = 'Extra strings Hello 1234567 World_this is a Regex Demo Extra stings'
result = re.match('Hello.*?(\d+).*?Demo', content)
print(result)
运行结果:表达式没有问题,但是却没有匹配到任何内容
由此可以得出,match在使用时我们必须知道待匹配字符串的开头部分,此方法才可以使用。所以在实际应用中它更适合检测某个字符串是否符合某个正则表达式规则。
这时候,要想要解决问题就要靠 search 方法了,它在匹配时会先扫描整个字符串然后匹配字符串中第一个匹配成功的结果,如果没有扫描到符合第一个正则表达式的结果就会返回None。此时我们写出的正则表达式就可以是字符串的某一部分:
# search 简单应用
import re
content = 'Extra strings Hello 1234567 World_this is a Regex Demo Extra stings'
result = re.search('Hello.*?(\d+).*?Demo'