python re module

正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎。


compile(pattern, flags=0)
编译一个正则表达式字符串,返回一个正则表达式对象.
第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M。
I(IGNORECASE): 忽略大小写(括号内是完整写法)。
M(MULTILINE): 多行模式,改变'^'和'$'的行为。
p = re.compile('hello world',re.I)
Pattern对象:
Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找。
Pattern不能直接实例化,必须使用re.compile()进行构造。
Pattern提供了几个可读属性用于获取表达式的相关信息:
pattern #编译时用的表达式字符串。
flags   #编译时用的匹配模式。数字形式。
groups  #表达式中分组的数量。
groupindex #以表达式中有别名的组的别名为键,以该组对应的编号为值的字典,没有别名的组不包含在内。 
match(pattern, string, flags=0)
match尝试从字符串的开始匹配一个模式(只匹配一个字符串的开始).
m = p.match('Hello World, Welcome to BeiJing')
print m.group() 

search(pattern, string, flags=0)
search会在整个字符串中查找匹配,直到找到第一个匹配返回一个Match对象,否则返回None。
m = p.search('Hello World, Welcome to BeiJing')
print m.group() 

re.match与re.search的区别:
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None,
而re.search匹配整个字符串,直到找到一个匹配。

finditer(pattern, string, flags=0)
finditer将匹配到的对象以iterator返回,每一次匹配都会返回一个Match对象。

Match对象的属性和方法:
print m.string  #匹配时使用的文本。 
print m.re      #匹配时使用的Pattern对象。 
group([group1,...]) #不填写参数时,返回group(0),编号0代表整个匹配的子串。
start([group]) #group默认值为0,返回指定的组的子串在string中的起始索引(子串第一个字符的索引)。 
end([group])   #group默认值为0,返回指定的组的子串在string中的结束索引(子串最后一个字符的索引+1)。
findall(pattern, string, flags=0)
findall匹配字符串中所有的匹配,并将匹配到的字符串以列表的形式返回。
p.findall('Hello World, Welcome to BeiJing, hello world, Hello world')
返回 
['Hello World', 'hello world', 'Hello world']
split(pattern, string, maxsplit=0, flags=0)
用匹配分割一个字符串,并将结果以列表形式返回。
p = re.compile('hello')
p.split('WelcomehellotohelloBeiJing')
返回
['Welcome', 'to', 'BeiJing']
sub(pattern, repl, string, count=0, flags=0)
sub用于替换字符串中的匹配项,返回替换后的字符串。
count是替换的个数,默认为0代表全部替换。
p = re.compile('hello')
p.sub('hi','hello@hello@hello')
subn(pattern, repl, string, count=0, flags=0)
subn用于替换字符串中的匹配项,返回一个tuple (new_string, number)
new_string是替换后的字符串
number为被替换的个数
escape(string)
对字符串中的非字母数字进行转义
purge()
清空缓存中的正则表达式
template(pattern, flags=0)
编译一个模板表达式,返回一个正则表达式对象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章