Python网络爬虫与信息提取(六)正则表达式的概念及语法

前言

  在bs4的查找方法中必须将想查找的对象的正确名称做为参数输入,但很多情况下我们并不知道我们要查找的对象的全部名称,例如我们想将名称中含"a"的对象全部找出,这种时候就需要用正则表达式来表示对象名称。

正文

  正则表达式是为了简洁明了地表示出任意组合与数量的字符而诞生的,其常用的基本语法如下:

操作符说明实例
. 表示任何单个字符 
[ ] 字符集,对单个字符给出取值范围[abc]表示a, b, c, [a-z]表示a到z单个字符
[^ ] 非字符集,对单个字符给出排除范围[^abc]表示非a或b或c的单个字符
* 前一个字符0次或无限次扩展abc*表示ab, abc, abcc, abccc等
+ 前一个字符1次或无限次扩展abc+表示abc, abcc, abccc等
? 前一个字符0次或1次扩展abc?表示ab, abc
| 左右表达式任意一个abc|edf表示abc, def
{m} 扩展前一个字符m次ab{2}c表示abbc
{m, n} 扩展前一个字符m至n次(含n)ab{1, 2}c表示abc, abbc
^ 匹配字符串开头^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾abc$表示abc且在一个字符串的结尾
( ) 分组标记,内部只能使用|操作符(abc)表示abc, (abc|def)表示abc, def
\d 数字,等价于[0-9] 
\w 单词字符,等价于[A-Za-z0-9] 

  下面我们举几个实例来简要说明一下:

  P(Y|YT|YTH|YTHO)?N  对应字符串为'PN', 'PYN', 'PYTH','PYTHN'.'PYTHON'

  PY[TH]ON  'PYTON','PYHON'

^[A-Za-z]+$  由26个字母组成的字符串

^[A-Za-z0-9]+$  由26个字母和数字组成的字符串

^-?\d+$  整数形式的字符

^[0-9]*[1-9][0-9]*$  正整数形式的字符串

  可见正则表达式确实能够简洁地表示出任意的字符串,但这些语法组成的正则表达式仅仅是一些字符串,如果想让程序能够识别,则需要引入re库来对这些字符进行编译,编译后的类型才是真正的正则表达式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值