爬虫数据提取【正则表达式】

match()方法;
必须从开头进行匹配,否则报错;
正则特点:即使字符串有问题,也不报错,返回None;所以使用group()方法。

表1---匹配规则替代
规则描述示例

\d ->> [0-9]

匹配所有的数字

text = '123-234-3456'

result = re.match('[0-9]*',text)

print(result.group()) #123

\D ->> [^0-9]

匹配所有的非数字

text = 'qa123-234-3456'

result = re.match('[^0-9]+',text)

print(result.group()) #qa

\w ->> [0-9a-zA-Z_]

匹配所有的字母、数字和下划线

text = 'qa123-234-3456'

result = re.match('[0-9a-zA-Z_]+',text)

print(result.group()) #qa123

\W ->> [^0-9a-zA-Z_]

匹配所有的非字母、数字和下划线

text = '-()-123-234-3456'

result = re.match('[^0-9a-zA-Z_]+',text)

print(result.group()) #-()-

[\d\D]、[\w\W]

匹配所有的字符

text = '-()-123-234-3456'

result = re.match('[\d\D]+',text)

print(result.group()) #-()-123-234-3456

表2---匹配多个字符
规则描述示例
*

匹配0个或多个字符

text = '123-234-3456'

result = re.match('[-\d]*',text)

print(result.group()) #123-234-3456

+

匹配1个或多个字符

text = 'a123-234-3456'

result = re.match('[a\d]+',text)

print(result.group()) #a123

要么匹配0个,要么匹配1个

text = 'a123-234-3456'

result = re.match('[a\d]?',text)

print(result.group()) #a

{m}

匹配指定的个数(m)

text = '123-234-3456'

result = re.match('[-\d]{4}',text)

print(result.group()) #123-

{m,n}

匹配m到n个字符【默认匹配最多的】

ext = '123-234-3456'

result = re.match('[-\d]{2,6}',text)

print(result.group()) #123-23

表3---匹配单个字符
规则描述示例
.

匹配任意的某个字符【换行符除外】

如果要匹配(.)则放入 [ ] 里面即可。

text = '-python'

result = re.match('.',text)

print(result.group()) #-

\d

只能匹配任意的数字【除了数字外均无法匹配】

text = '8python'

result = re.match('\d',text)

print(result.group()) #8

\D

除了数字外均可匹配【数字均无法匹配】

text = '\npython'

result = re.match('\D',text)

print(result.group()) #换行

\s

匹配空白字符【\n、\t、\r、空格】

text = ' python'

result = re.match('\s',text)

print(result.group()) #空格

\w

匹配小写的a-z;大写的A-Z';数字和下划线

text = 'aA_4python'

result = re.match('\w',text)

print(result.group()) #a

\W

匹配除了小写\w之外的所有字符

text = '-python'

result = re.match('\W',text)

print(result.group()) #-

[ ]

只要在括号内的内容均可匹配【或的关系】

text = ' 1python'

result = re.match('[1\s]',text)

print(result.group()) #空 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪宝儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值