python使用正则表达式_python使用正则表达式

正则表达式能按某种模式匹配一系列有相似特征的字符串。它是由一些字符串和特殊符号组成的字符串。

常见正则表达式符号和特殊字符

1.表示字符

表示法

描述

正则表达式示例

.

匹配任意一个字符(除了\n)

a.c 匹配在字母“a”和“c”之间的任意一个字符;例如abc、a9c、a#c等

[]

匹配[]中列举的字符

a[0-9] 匹配字母a后面跟着0到9任意一个数字;例如a1、a3、a9等

[^...]

匹配不在此字符集中出现的任何一个字符

a[^A-Z];匹配a后面不能是大写字母,例如不能是aA、aD、aZ等

\d

匹配任何十进制数字(\D与\d相反,匹配非数字)

a\dc 匹配a和c之间任何一个数字;例如a1c、a6c、a8c等

\s

匹配任何空格字符,即空格、tab键、\n、\r、\t等(\S与\s相反,匹配非空格)

a\sc 匹配a和c之间任何空白字符;例如a c、a c等

\w

匹配任何字母数字字符(\W与\w相反)

a\wc 匹配a和c之间任何一个字母数字字符;例如aac、a2c、a*c等

2.表示数量

表示法

描述

正则表达式示例

*

匹配前一个字符出现0次或者无限次,即可有可无

a.*c ;匹配如ac、abc、abbbbbbbbbbc等

+

匹配前一个字符出现1次或者无限次,即至少有一次

a.+c;匹配如abc、abbbbc等,但不能匹配ac

?

匹配前一个字符出现1次或者0次,即要么有1次,要么没有

a.?c;匹配如ac、abc

{m}

匹配前面一个字符出现m次 比如填{3}此表示需要出现3

a.{3}c;匹配abbbc

{m,}

匹配前一个字符至少出现m次 比如填{5,}表示至少出现五次

{m.n}

匹配前一个字符出现从m到n次 比如填{3,5}表示至少出现3次最多出现5次

a.{3,5}c;匹配abbbc、abbbbbc

3.表示边界

表示法

描述

^

匹配以什么字符符为开头

$

匹配以前一个字为结尾

\b

匹配一个单词的边界

\B

匹配非单词边界

|

匹配左右两边任意一个表达式

re模块

# 导入re模块

import re

match()方法

result = re.match("正则表达式", "要匹配的字符串")

re.match是用来进行正则匹配检查的方法,若字符串匹配正则表达式,则match方法返回匹配对象(macth object),否则返回None(注意不是空字符串"")macth object具有group方法,用来返回字符串的匹配部分。

search()方法

result = re.search("正则表达式", "要匹配的字符串")

search()和match()的区别是:match是从左往右依次匹配所以^要不要都没影响,search是找所有字符串中是否包含要匹配的字符串。如果要从第一个字符串开始找就需要用到^

findall()方法

如果在一堆字符串中匹配到多个一样的值全部以列表的形式返回。search()和match()都只返回第一个匹配到的值

sub()方法

re.sub("被替换的字符串(把什么)","替换后的字符串(替换成什么,可以接收一个函数)", "原始字符串")

贪婪模式非贪婪模式

默认匹配时都是贪婪模式,就是尽可能多的去匹配,只要在匹配字符后面加个?号就可以关闭贪婪模式。即非贪婪模式,尽可能的匹配少的字符

import re

s = 'aa12345ddddd'

# 贪婪

re.match('aa(\d+)', s).group(1)

'12345'

# 非贪婪

re.match('aa(\d+?)', s).group(1)

'1'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值