首页 » 技术分享 » import re (Python的re模块)

import re (Python的re模块)

 

转自:http://www.python8.org/a/fenleiwenzhang/yuyanjichu/2009/0901/150.html

今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。

 

方法/属性 作用
match() 决定 RE 是否在字符串刚开始的位置匹配
search() 扫描字符串,找到这个 RE 匹配的位置
findall() 找到 RE 匹配的所有子串,并把它们作为一个列表返回
finditer() 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回

 

match() 函数只检查 RE 是否在字符串开始处匹配,而 search() 则是扫描整个字符串。

match() 只报告一次成功的匹配,它将从 0 处开始;如果匹配不是从 0 开始的,match() 将不会报告它。

search() 将扫描整个字符串,并报告它找到的第一个匹配。


match()、seerch()、finditer()如果匹配成功则返回一个Match Object对象,该对象有以下属性、方法:

 

方法/属性 作用
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含匹配 (开始,结束) 的位置

 

 

 

group() 返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。

1. group()返回re整体匹配的字符串,

2. group (n,m) 返回组号为n,m所匹配的字符串,如果组号不存在,则返回indexError异常

 

#!python
>>> p = re.compile('(a(b)c)d')
>>> m = p.match('abcd')
>>> m.group(0)
'abcd'
>>> m.group(1)
'abc'
>>> m.group(2)
'b'


 

groups() 方法返回一个包含
正则表达式中所有小组
字符串的元组,从 1 到 所含的小组号,
通常groups()不需要参数,返回一个元组,元组中的元就是正则表达式中定义的组。

 

#!python
>>> p = re.compile('(a(b)c)d')
>>> m = p.match('abcd')
>>> m.groups()
('abc', 'b')


使用索引取得相应的组内容,例如:m.groups()[0]

 

p2=re.compile(r'''(\d)+\w''',re.X)  

>>> p2.match('123a b12123c').group()   # re正则表达式 '(\d)+\w匹配的字符串

'123a'

>>> p2.match('123a b12123c').group(0)

'123a'

>>> p2.match('123a b12123c').group(1)  #返回正则表达式中第一个小组即(\d)所匹配的字符串

'3'

>>> p2.match('123a b12 123c').groups() 
('3',)

re.match ,从字符串开头匹配,返回一个Match Object,或None

  re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。

 

import re
text = "JGood is a handsome boy, he is cool, clever, and so on..."
m = re.match(r"(\w+)\s", text)
if m:
print m.group(0), '\n', m.group(1)
else:
print 'not match'  

转载自原文链接, 如需删除请联系管理员。

原文链接:import re (Python的re模块),转载请注明来源!

0