爬虫入门:正则表达式

正则表达式

1.又称规则表达式(英语:Regular Expression,在代码中常简写为regex、 regexp或RE),计算机科学的一个概念。 正则表达式通常被用来检索、替换那些符合某 个模式(规则)的文本。
2.是对字符串操作的一种逻辑公式。 用事先定义好的一些特定字符、及这些特定字 符的组合,组成一个“规则字符串”,这个“规则 字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的作用

  1. 用来检测用户的输入是否满足要求
  2. 网络爬虫
  3. 查找数据
表达式功能
.匹配任意1个字符(除了\n)
[]匹配[]中列举的字符
\d匹配数字,即0-9
\D匹配非数字,即不是数字
\s匹配空白,即空格,tab键
\S匹配非空白
\w匹配单词字符,即a-z,A-Z,0-9
\W匹配非单词字符

例子
#coding=utf-8

import re

result = re.match(r’正则表达式’,要匹配的字符串)
//使用match方法进行匹配操作

result.group()
//如果上一步匹配到,使用group方法提取数据

表达式功能
*匹配前一个字符出现0次或者无限次,即可有可无
+匹配前一个字符出现1次或者无限次,即至少有1次
匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}匹配前一个字符出现m次
{m,n}匹配前一个字符出现从m到n次

正则表达式语法: “ ^ ”(脱字号)

  1. 表示以…开始
  2. 如果把它放在中括号当中,它 表示取反操作

正则表达式语法: “ $ ” 表示以…结尾

正则表达式语法: “ | ” 匹配多个表达式和字符串

贪婪模式非贪婪模式

匹配分组

表达式功能
l匹配左右任意一个表达式
(ab)将括号中字符作为一个分组
\num引用分组num匹配到的字符串
(?P<name .>)分组起别名
(?P=name)引用别名为name分组匹配到的字符串

re模块中常用的函数

•search

• match

•findall(pattern,string[, flags]) 列出所有在字符串string 中,与正则表达式pattern匹配的所有匹配项,并返回一个list
注意:“.” 不能够匹配 \n
解决方法:设置findall的参数flag = re.DOTALL

•re.sub(pattern, repl, string, count=0, flags=0)
其中三个必选参数:pattern, repl, string
两个可选参数:count, flags
•split(pattern,string)使用正则表达式来分割字符串,并返回一个list

•compile(pattern[,flags]) 对于一些经常要用到的正则表达式,可以使用compile进 行编译,后期再使用这个正则表达式的时候可以直接拿过来用,执行效率会更快.而且还可以指定compile的第二个参数flags = re.VERBOSE.这样,在写正则表达式的时候可以分行 以及添加注释.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值