正则表达式功能概括

正则表达式

解释:是处理字符串的强大工具,有自己语法结构,能实现字符串的检索、替换、匹配验证等功能。
对爬虫来说,用它来从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与数据分析挖掘方面的文章,技术! 谢谢~

原文地址:https://www.cnblogs.com/xubin97/p/10334720.html