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次或者多次 ab aaaa,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)d bad,bid,bed
. 匹配任意单个符号 b.d bad,bed
^ 指字符串开始位置 的字符或子表达式 ^a apple,asdf,a
\ 转义字符
$ 常用于正则表达式的末尾,表示从字符串末端匹配,如果不用他,每个正则表达式实际上都带着.*模式,只会从字符串开头匹配 [A-Z]*[a-z]* ABCabc,zzzyx
?! “不包含”。通常放在字符或者正则表达式的前面,表示字符不能出现在目标字符串中,比较难用

猜你喜欢

转载自blog.csdn.net/shine10076/article/details/83793185