正则表达式

正则表达式 regex

示例

‘\d+\s*\w?’
匹配的文本有一个或多个数字(\d+),接下来是0个或多个空白字符(\s)*,接下来是0个或1个字母/数字/下划线字符(\w?)

import re
reg=r'\d+\s*\w?'
s='012 drummers, 11213pipers, 10      lords, 9ladies, 8_maids, 7swans, 6 geese, 5 rings, 4 birds, 3 hens, 2 doves, 1个partridge'
rgex=re.compile(reg)
fa=rgex.findall(s)
print('匹配的文本有一个或多个数字(\d+),接下来是0个或多个空白字符(\s)*,接下来是0个或1个字母/数字/下划线字符(\w?)')
print(fa)
匹配的文本有一个或多个数字(\d+),接下来是0个或多个空白字符(\s)*,接下来是0个或1个字母/数字/下划线字符(\w?)
['012 d', '11213p', '10      l', '9l', '8_', '7s', '6 g', '5 r', '4 b', '3 h', '2 d', '1个']

1、表达一位数字字符:\d

\d 是一个正则表达式, 表示一位数字字符,即任何一位 0 到 9 的数字。

1234-123-1234:\d\d\d\d-\d\d\d-\d\d\d\d

字符分类 [0-5] 只匹配数字 0 到 5

2、数字匹配模式多次:\d{n}

1234-123-1234:\d\d\d\d-\d\d\d-\d\d\d\d=\d{4}-\d{3}-\d{4}

r=r'\d{8}'
reg=re.compile(r)
print(reg.findall('taxiGps20190531.csv'))
['20190531']

3、括号分组:(\d{3})-(\d{3})-(\d{4})

正则表达式字符串中的第一对括号是第1组。 第二对括号是第2组

向group()匹配对象方法传入整数1或2,就可以取得匹配文本的不同部分;

向group()方法传入0或不传入参数,将返回整个匹配的文本

需匹配()
(2020)-(09-08)——>(\d{4})-((\d{2}-\d{2}))

4、管道符:|

匹配许多表达式中的一个

5、匹配分组0次或一次 (可选匹配 ):(str)?

问号在正则表达式中可能有两种含义: 声明非贪心匹配或表示可选的分组。

6、匹配分组0次或无数次 :(\d)* - 尽可能多的匹配数字

7、匹配分组1次或无数次 :(\d)+ - 至少有一个数字

8、{}次数限制{3,5}出现3-5次

\d 0 到 9 的任何数字

\D 除 0 到 9 的数字以外的任何字符

\w 任何字母、数字或下划线字符(可以认为是匹配“单词” 字符)
\W 除字母、 数字和下划线以外的任何字符
\s 空格、制表符或换行符(可以认为是匹配“空白” 字符)
\S 除空格、 制表符和换行符以外的任何字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值