python网络爬虫 正则表达式

正则字符串
正则字符串:就是任意可以用一系列线性规则构成的字符串。
例如:
aabbbbb(cc)(d| )
将其分解为

  • aa*:a后面跟着的a*表示“重复任意次a,包括0次”,这样就可以保证字母a至少出现一次。
  • bbbbb:没啥特别,5次b
  • (cc)*表示有任意次两个c(可以是0次)
  • (d|):增加一个竖线在表达式里表示“这个或者那个”。表示最后可以跟着与一个d或者空格
    一个典型的利用正则表达式的例子是,邮箱地址
[A-Za-z0-9\._+]+@[A-Za-z]+\.(com|org|net|edu)

其中:

  • 邮箱地址的第一部分至少包括一种内容:大写字母,小写字母,数字0-9,点号.加号+或者下划线_:[A-Za-z0-9._+]+:这个表示括号里的任意一个符号都可能出现,后面的+表示这些字符都可以出现多次,且至少出现一次
  • @:这很直接
  • [A-Za-z]+:符号@后面只能出现字母
  • (com|org|net|edu):一般邮箱的后缀是其中四个之一
    正则表达式的常用符号
符号含义例 子匹配结果
*匹配前面的字符,子表达式或者括号里的字符0次或者多次abaaaa,aabb,aaab,bbbb
+匹配前面的字符,子表达式或者括号i里的字符至少一次a+b+aaabb,aabb,ab
[]匹配任意一个字符,相当于任意选择一个[A-Z]*APPLE,CAPTIALS,QWERTY
()表达式编组(在正则表达式的规则里编组会优先运行)(ab)aaabaab
{m,n}匹配前面的字符,子表达式或者括号里的字母 m到n次(包括m和n次)a{2,3}b{2,3}aabbb,aaabb
[^]匹配任意一个不在中括号里的字符[^A-Z]*apple,lowercase
|匹配任意一个竖线分割的字符b(a|i|e)dbad,bid,bed
.匹配任意单个符号b.dbad,bed
^指字符串开始位置 的字符或子表达式^aapple,asdf,a
\转义字符
$常用于正则表达式的末尾,表示从字符串末端匹配,如果不用他,每个正则表达式实际上都带着.*模式,只会从字符串开头匹配[A-Z]*[a-z]*ABCabc,zzzyx
?!“不包含”。通常放在字符或者正则表达式的前面,表示字符不能出现在目标字符串中,比较难用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值