python 正则的使用

import re

元字符:

符号描述
.通配符,匹配除换行符外的所有字符,一次只能匹配一个字符
^匹配的字符必须在字符串开头
$匹配的字符必须在字符串结尾
*匹配 * 前面的字符0或多次
+匹配 + 前面的字符1或多次
?匹配?前面的字符0或1次
{}匹配{m,n}前面的字符m-n次
[]匹配 [] 中的某一个字符。在[]中,.(通配符)将失去作用,^在[]里使用代表取反,反斜杠在[]中仍有特殊作用
\反斜杠后面跟元字符去除元字符特殊功能,后面跟普通字符实现特殊功能
\d匹配任何 一个十进制数,相当于[0-9]
\D匹配任意一个非数字字符,相当于[^0-9]
\s匹配一个空白字符,等价于[\t\n\r\f\v]
\S匹配一个非空白字符,等价于[^\t\n\r\f\v]
\w匹配任意一个字母数字或下划线,等价于[a-zA-Z0-9_]
\W匹配除字母数字或下划线外的任意一个字符,等价于[^a-zA-Z0-9_]
\b匹配一个单词的边界,在需要匹配的单词两边放入\b

re模块中一些重要函数

函数描述
compile(patern[, flags])根据包含正则表达式的字符串穿件模式对象
search(pattern, string[, flags])在字符串中寻找模式
match(pattern, string[, flags])在字符串的开始处匹配模式
split(pattern, string[, maxsplit=0])根据模式的匹配项来分割字符串
findall(pattern, string)列出字符串中模式的所有匹配项
sub(pattern, replace, string[, count=0])将字符串中所有pattern的匹配项用replace替换
secape(string)将字符串中所有特殊正则表达式字符转义

1、re.findall(pattern,string):查找匹配项,返回包含所有匹配项的列表,没有匹配项返回空列表。注:如果匹配项里有组,则会优先取出组里的匹配项,如果想取出完整匹配项则在组的开始加上?:(问号和冒号)

2、re.match(pattern,string[,flags]):从字符串开头进行匹配,成功返回Match对象,失败返回None

3、re.search(pattern,string[,flags]):在string中匹配pattern,成功返回Match对象,失败返回None,只返回第一个

注:flags默认为0,其它可选项:

re.I(大写i) 使匹配对大小写不敏感

re.M 多行匹配,影响 ^ 和 $

re.S 使 .(通配符)匹配包括换行符在内的所有字符

4、re.sub(pat,repl,string[count=0]):将字符串中所有pat的匹配项用repl替换,count参数代表替换次数

5、re.subn(pat,repl,string[count=0]):和sub()功能一样,不同的是此函数返回被替换次数

6、re.split(pattern,string[, maxsplit=0]):根据匹配项分割字符串,返回列表

7、re匹配对象的方法:

>>> s = 'to be or not to be'

>>> r = re.match(r'to\b\s(be)\b', s)

>>> r.group()

'to be'

>>> r.groups()

('be',)

>>> r = re.match(r'to\b\s(?P<key>be)\b', s)

>>> r.groupdict()

{'key': 'be'}

group([group1,…]) 返回匹配到的字符串

groups() 返回匹配到的分组结果,以元组形式返回

groupdict() 以匹配到的分组结果作为值,以指定key作为键,以字典形式返回

start([group]) 返回给定组匹配项的开始索引(默认为0)

end([group]) 返回给定组匹配项的结束索引加1

span([group]) 以元组形式返回一个组的start和end

8、re.finditer():匹配成功返回迭代器对象,可在for循环中使用group()等re匹配对象方法

原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值