To be a person with heart.

python 正则表达式使用

.    表示任意字符

*, +, ?    '*'表示匹配前一个字符重复 0 次到无限次,'+'表示匹配前一个字符重复 1次到无限次,'?'表示匹配前一个字符重复 0 次到1次

*?, +?, ??     前面的*,+,?等都是贪婪匹配,也就是尽可能多匹配,后面加?号使其变成惰性匹配即非贪婪匹配

re.S   将“\n”当做一个普通的字符加入到这个字符串中

|    表示或者

\    对特殊字符进行转义

\\   将特殊字符转为普通字符

[]    表示一个字符集

(...)    作为一个分组. findall 在有组的情况下只显示组的内容

^    表示字符串开头

$    表示字符串结尾

\s    匹配任意空白字符,相当于 [ \t\n\r\f\v]

\s+$  匹配空行

\d    匹配任意十进制数,相当于 [0-9]

\w    匹配任意数字和字母,相当于 [a-zA-Z0-9_]

re.findall(r'<p>(.*?)</p>', content, re.S | re.M)    能够以列表的形式返回能匹配的子串, 即能抓取网页中段落内容

re.match(r'\s', line)    匹配以空格开头的字符串, 没有则返回None

re.sub(r'<a(.*?)>|</a>|<strong>|</strong>','',line)    替换函数,把<a ...>、</a>、<strong>、</strong>都替换为空,即删除

参考教程:

https://www.cnblogs.com/yyyg/p/5498803.html

https://www.runoob.com/python/python-reg-expressions.html

评论

© IComac | Powered by LOFTER