正则表达式功能概括
正则表达式
解释:是处理字符串的强大工具,有自己语法结构,能实现字符串的检索、替换、匹配验证等功能。
对爬虫来说,用它来从html中获得数据就简单了。
re库
1.match()
(更适合检测某个字符串是否符合某个正则表达式的规则,后面会讨论到)
content='zifuchuan'
result=re.match(' 正则表达式',content)
result.group() #返回匹配出的字符串
result.span() #返回字符串的在原字符串的位置范围
result.group(1) #输出第一个被()包含的匹配结果
2.贪婪与非贪婪匹配
content='Hello 1234567 Word_This is a Demo'
A=re.match('^Hello.*(\d+).*Demo$',content) #贪婪匹配
B=re.match('^Hello.*?(\d+).*Demo$',content) #非贪婪匹配
print(A)
print(B)
结果:
A:7
B:1234567
原因:
贪婪时候,\d+ 意思是至少一个数字,而.表示会尽量匹配多的字符,会把123456‘吃掉’。
非贪婪时候,.? 代表匹配尽量少的字符,从来会把123456留下。
3.修饰符
解释:使.能匹配的字符串范围更广。
1):re.S #使.能匹配任何字符,包括换行符。
2):re.I #使.匹配对大小字符不敏感。
3):re.U、re.L、re.X等
4.转义匹配
解决:要匹配的字符串包含.的问题。
在正则表达式里真正想匹配.的时候,在.前加\ 形成.,来匹配字符串的.
5.search()
match()是从字符串头开始匹配正则表达式,若开头不匹配则直接输出 None;
而search()是先从字符串整体找正则表达式。
6.findall()
search()只能匹配字符串中匹配中的第一个,而findall()会返回所有获取的内容,结果
返回一个list列表。
7.sub()
re.sub()用来修改、删除文本。
import re
content='a1b2c3d4e5f6g7'
A=re.sub('\d+','',content)
print(A)
结果:abcdefg
8.compile()
把正则字符串编译成正则表达式对象,以便在后面中复用。
content='zifuchuan'
pattern=re.compile('正则表达式')
re.search(pattern,content)
欢迎关注我~会经常更新Webspider与数据分析挖掘方面的文章,技术! 谢谢~