当前位置: 首页 > 科技观察

一篇深入剖析Python爬虫核心,正则表达式其实很简单!

时间:2023-03-15 19:12:17 科技观察

python爬虫正则表达式引入元字符^$*+。|?{}[]()这些是元字符,学习这些对你来说应该足够了。python中的正则表达式是通过importre来使用的。1、Python爬虫正则表达式,[]常用于指定一个字符集,如:[abc];[a-z]里面的所有字母都会一一匹配例子:上面的例子解释的很清楚,我就不逐行重复解释了。注:例子中的^表示否定。[a-z]表示从a到z的所有字母。[0-9]相当于[0123456789],也可以用d表示。所有其他的元字符在[]中都会失去原来的意义,例如例子中[]中的^表示否定。2、^表示匹配字符串的开头。在多行模式下匹配每行的开头。注意:^一般放在字符串3的开头,$表示匹配字符串的结尾。在多行模式下匹配每行的结尾。注意:$一般放在字符串的末尾。以上三个可以算是一个小块,你还记得吗?你明白吗?你明白吗?你自己输入了代码吗?????!!!!请务必尝试自己输入代码!好的,让我们继续。既然元字符是特殊字符,那如果我们要匹配元字符本身的字符呢?当我们想把元字符变成普通符号时,可以使用(反斜杠)进行转义。4.反斜杠后可以加不同字符表示特殊含义。它也可以用来取消所有的元字符,把它们变成普通的符号。只要你能记住粗体和黑色,我敢打赌你一定能做到。所以记住加粗的,自己敲下面的代码。示例正则表达式可以匹配变长字符集,也可以指定字符串的重复次数。*(星号)指定前一个字符可以匹配0次或多次,不能只匹配1次,匹配结果会尽可能重复多次***不超过20亿次。(如果后面加个问号?就变成非贪婪模式,只匹配0次:ab*?结果是a)+(加号)匹配前一个字符1次或多次。(如果后面加个问号?就变成非贪婪模式,只匹配一次:ab+?结果是ab)?(问号)匹配前一个字符0次或1次。(如果后面加个问号?就变成非贪婪模式,只匹配0次:ab??结果是a)?可能是python原来的贪心模式变成了非贪心模式。{m}(大括号)m是一个数字,表示重复前一个字符m次。{m,n}表示重复前一个字符m-n次。如果省略m,则表示0-n次,如果省略n,则表示m至***次。(如果后面加个问号?就变成非贪婪模式,只匹配0次:ab{2,100}?结果是abb)()|..它匹配除换行符以外的任何字符,并且以交替模式匹配(re.DOTALL)它甚至可以匹配换行符|匹配任何左和右表达式。a|b匹配a或匹配b。如果未包含在(...)中,则其范围是整个正则表达式。(...)分组正则表达式,每组是一个整体,先返回组内的数据