Python 正则表达式 re.sub与re.compile

#!/usr/bin/python
# # -*- coding: UTF-8 -*-

import re

number = "123-456-789 # test"
num = re.sub(r'#.*$',"",number)
print("电话:",num)
num = re.sub(r"\D","",number)
print("phone:",num)

def double(math):
    s = int(math.group('s'))
    return str(s * 2)
print(re.sub('(?P<s>\d+)',double,number))

p  = re.compile(r'\d+')
m = p.match("hazy123cc123")
print(m)
m = p.match("hazy123cc123",1,111)
print(m)
m = p.match("hazy123cc123",4,111)
print(m)

str = re.compile(r'([a-z]+)([a-z]+)',re.I)
r = str.match("Hazy is a calm person!")
print(r)
print(r.group(0))
print(r.span(0))
print(r.group(1))
print(r.span(1))
print(r.group(2))
print(r.span(2))
print(r.groups())
# r.group(3)

re.sub用于替换字符串中的匹配项。
re.compile 函数用于编译正则表达式,生成一个正则表达式对象

re.compile 后续代表:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和 # 后面的注释

部分内置参数:
group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);
start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;
end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;
span([group]) 方法返回 (start(group), end(group))。


版权声明:本文为weixin_49843611原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。