Python爬虫(正则表达式)
正则表达式定义正则表达式,又称规则表达式。在代码中常简写为regex、regexp或RE,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
文章目录
正则表达式
定义
正则表达式,又称规则表达式。在代码中常简写为regex、regexp或RE,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
字符匹配
直接匹配
在进行匹配时我们可以用字符串进行直接匹配。
这里以https://regex101.com(正则表达式)举例
正则表达式中的字符(部分常用字符)
.(点)
默认情况下,.可以匹配除“\n”和“\r”之外的任何一个字符,在DOTALL模式(即S模式)中也能匹配换行符。
注:这里并不是(.)匹配到了hello word 123456这个字符串,而是(.)与hello world 123456中每个字符都能匹配。
import re
p=re.findall(".","\n")
print(p)
import re
p=re.findall(".","\n",re.S)
print(p)
对于以上两段代码,前者返回空列表,后者返回一个含“\n”的列表。(findall方法找出已给字符串中所有与正则表达式可匹配的字符,返回一个数组)
\
转义字符,将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 “(”,(特殊字符转成普通字符,部分普通字符转成特殊字符)。


[…]
字符集()字符类。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。第一个如果是^则表示取反,如[^abc]表示不是abc的其他字符。[]只能匹配列表中的一个。
所有特殊字符在字符集中都失去其原有的特殊含义。 在字符集中如果使用]、-或^,可以在前面加上反斜杠(\),或把]、-放在第一个字符,把^放在非第一个字符。



字符集(可写在字符集中)
\d、\D
\d:数字,相当于[0-9]
\D:非数字,相当于[^\d]

\s、\S
\s:空白字符,相当于[<空格>\t\r\n\f\v]
\S:非空白字符,相当于[^\s]

\w、\W
\w:单词字符,相当于[A-Za-z0-9_]
\W:非单词字符,相当于[^\w]

数量词(用在字符或(…)之后)
贪婪:正则表达式匹配到一个字符后不会停止,会继续匹配,直到匹配完所有满足正则表达式的字符,若遇到不匹配的字符记为匹配零0次。
*(贪婪)
匹配前一个字符0或无限次





+(贪婪)
匹配前一个字符1次或无限次。


?(非贪婪)
匹配前一个字符0次或1次




综合使用
句子中的某个字母
例:I love you中ve
时间戳
常用正则表达式的方法:
re.compile(编译)
re.match(从头找一个)
re.search(找一个)
re.findall(找所有)
re.sub(替换)
re.compile(“正则表达式”)
re.match(“正则表达式”,“字符串”)
re.search(“正则表达式”,“字符串”)
re.findall(“正则表达式”,“字符串”)
re.sub(“正则表达式”,“替换字符”,“被替换字符串”)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)