Python学习(十七)——re类与正则表达式

re.match() 匹配

尝试在字符串的起始处应用该模式,返回一个匹配对象,如果没有找到匹配项,则返回一个对象。

re.match().start() 返回子串匹配组的开始索引

print re.match('Hello','Hello,World!').start()

输出:

0

re.match().end() 返回子串匹配组的结束索引

print re.match('Hello','Hello,World!').end()

输出:

5

re.match().span() 返回一个元组(开始、结束)的子串匹配的组

print re.match('Hello','Hello,World!').span()

输出:

(0, 5)

re.match().group() 返回匹配的一个子组或多个子组

print re.match('Hello','Hello,World!').group()

输出:

Hello

re.search() 搜索

扫描字符串,寻找匹配的模式,返回一个匹配对象,或者如果没有找到匹配。

re.search().start() 返回子串匹配组的开始索引

print re.search('l', 'Hello,Hello,World!').start()

输出:

2

re.search().end() 返回子串匹配组的结束索引

print re.search('l', 'Hello,Hello,World!').end()

输出:

3

re.search().span() 返回一个元组(开始、结束)的子串匹配的组

print re.search('l', 'Hello,Hello,World!').span()

输出:

(2, 3)

re.search().group() 返回匹配的一个子组或多个子组

print re.search('l', 'Hello,Hello,World!').group()

输出:

l

re.sub() 替换

通过复制左边的非重叠出现的字符串的模式替换字符串。

print re.sub(r'b', "a", "ababaaab")

输出:

aaaaaaaa

re.compile() 编译

编译一个正则表达式模式,返回一个模式对象.
通过re.compile把正则表达式编译成对象,会速度快很多.

print re.compile(r'Hello').search(r'Hello,World!').group()

输出:

Hello

正则表达式

标志修饰符

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。

修饰符描述
re.I忽略大小写
re.M多行匹配,影响 ^ 和 $
re.S使 . 匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
re.L做本地化识别locale-aware匹配

例:忽略大小写

print re.match('hello','Hello,World!',re.I).span()

输出:

(0, 5)
print re.search('l', 'Hello,Hello,World!',re.M|re.I).start()

输出:

2

常用正则表达式

符号描述
re1|re2匹配正则式re1或re2
.匹配任何字符(换行符除外)
^匹配字符串的开始
$匹配字符串的结尾
匹配前面出现的正则表达式 0次或1次
*匹配前面出现的正则表达式 0次或多次
+匹配前面出现的正则表达式 1次或多次
{n}匹配前面出现的正则表达式 n次
{m,n}匹配前面出现m次到n次的正则表达式
[…]匹配字符组里出现的任意一个字符
[x-y]匹配从x到y中的任意一个字符
^…不匹配字符组里出现的任意一个字符
\w匹配一个字母或数字,即[A-Za-z0-9] (\W是\w的反义)
\d匹配一个数字,,即[0-9]
\s匹配任何空白字符(\S是\s的反义)

搜索world或World:

print re.search('w|World', 'Hello,World!').group()

输出:

World

这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值