正则表达式

正则提取字符方式

[abc]abc中的一个
[a-z]a-z中的一个
[0-9]0-9中的一个数字
[a-f0-5]a-f或者0-5 一个就可以
[ab] [de][12]每个[]取一个,连起来

元字符

  • 1:对于 . 的使用,以及字符串的方法
.  任意单字符   ,匹配不了 \n
就想表示字符串的 . 这么写 \.
\d一个数字 相当于[0-9]
\D一个 非 数字
\w一个数字字母或者下划线。相当于[a-zA-Z0-9_] (中文)
\W\w的反面
\s空白
\S非空白
\b单词边界 r’\bis\b’ 特殊的地方。单词边界前一定要加一个r’’
  • 2:小例子:
	13\d\d\d\d\d\d\d\d\d    13\d{9}
	1[3456789]\d\d\d\d\d\d\d\d\d

量词:

{m}m 个
{m,n}m-n个
{1,}1个以上
{0,}0个以上
{0,1}0次或一次
*相当于 {0,}
+相当于 {1,}
?相当于 {0,1}
  • 1:小例子:
    \w+@qq.com 一个qq邮箱
    \w+@\w+.\w+ 任意的一个 xx@xxx.xxx 的邮箱

分组

(name|age|sex) 一个name 或者 age 或者 sex

^以什么开头
$以什么结尾

贪婪模式:

reg2 = re.compile(‘a\w*b’)会 尽量长的去寻找结尾的b
reg2 = re.compile(‘a\w*?b’)只要axxb有即可。一个就行

贪婪模式用在爬虫提取数据中

# 导包
import re
# 设置匹配模式
# 其实就是用你多个重复中的提取一个需要的地方
#(.*?)两边给标识,即提取了两个标识中间的部分
#.*?两边给标识,就是把两个标识中间的部分全部省略
#案例
# 创建提取格式
reg=re.compile(中间为提取省略部分)
# 利用提取格式提取
赋值给一个变量,方便调用=re.findall(reg,需要从中提取信息的变量代表名)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值