Python正则

#coding:utf-8
import re

#将正则表达式编译成pattern对象
pattern = re.compile(r'\d+')
#使用re.match匹配文本,获得匹配结果,无法匹配时,返回None
#result1 = re.match(pattern,'192abc')
"""
    re.match()函数只在字符串开始的位置匹配,而re.search()会扫描整个string查找匹配
    re.split()是按照能够匹配的字符串将string分割后返回列表。maxsplit用于指定最大分割次数,不指定,将全部分割
    re.findall(),搜索整个string,以列表的形式返回能匹配的全部字符串
"""
result1 = re.search(pattern,'192abc')
if result1:
    print result1.group()
else:
    print '匹配失败1'

#result2 = re.match(pattern,'abc192')
result2 = re.search(pattern,'abc192')
if result2:
    print result2.group()
else:
    print '匹配失败2'

print re.split(pattern,'A1B2C3D4')
print re.findall(pattern,'A1B2C3D4')

matchiter = re.finditer(pattern,'A1B2C3D4') #搜索整个string,以迭代器形式返回能匹配的全部Match对象。
for match in matchiter:
    print match.group()

#re.sub(pattern,repl,string[,count])
"""
  使用repl替换string中匹配到的字符后并返回替换后的字符串。当repl是一个字符串时,可以使用\id或\g<id>、
\g<name>引用分组,但不能使用编号0。当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回
一个字符串用于替换(返回的字符串中不能再引用分组)。count用于指定最多替换次数,不指定时全部替换
"""

p = re.compile(r'(?P<word1>\w+) (?P<word2>\w+)') #使用名称引用
s = 'I say,hello world!'
print  p.sub(r'\g<word2> \g<word1>',s)
p = re.compile(r'(\w+) (\w+)')#使用编号
print p.subn(r'\2 \1',s)
print p.sub(r'\2 \1',s)
def func(m):
    return m.group(1).title() + ' ' + m.group(2).title()
print p.sub(func,s)
print p.subn(func,s)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值