码迷,mamicode.com
首页 > 编程语言 > 详细

python re模块学习(二)

时间:2016-06-18 06:44:40      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

正则匹配之分组匹配

去已经匹配到的数据中再次提取数据

# match 分组
origin = ‘has sdfsx x‘
# 普通正常正则匹配
r = re.match(r‘h\w+‘, origin)
print(r.group())

==> has

# 分组匹配
r = re.match(r‘h(\w+)‘, origin)  # 这里我加了一个圆括号
print(r.groups())

==> (‘as‘,)   # 这里就会显示,我括住的都匹配到了哪些

# 分组字典
r = re.match(r‘h(?P<name>\w+)‘, origin) 
print(r.groupdict())

==> {‘name‘: ‘as‘} # 这里相当于在上一个分组基础上,我给这个括号起了个变量名,这个变量名作为key,被匹配到的值作为value存入的字典
# findall分组
origin = ‘has sdfsx hal x‘
r = re.findall(‘h(\w+)‘,origin)  
print(r)

==> [‘as‘, ‘al‘]  # findall分组,当括住这一部分列出

# findall支持多个分组
origin = ‘hasaabc sdfsx halaabc x‘
r = re.findall(‘h(\w+)a(ab)c‘,origin)
print(r)

==> [(‘as‘, ‘ab‘), (‘al‘, ‘ab‘)]
# split分割分组

# 无分组情况下
s = ‘xxx a xxxx‘
r = re.split(‘a‘, s)
print(r)

==> [‘xxx ‘, ‘ xxxx‘]

# 有分组
r = re.split(‘(a)‘, s)
print(r)

==> [‘xxx ‘, ‘a‘, ‘ xxxx‘]  # 它将切割字符也添加进来

# 分组嵌套分组
r = re.split(‘(a(le)x)‘, s)
print(r)

==> [‘xxx ‘, ‘alex‘, ‘le‘, ‘ xxxx‘]  # 会由外至内的匹配分组

python re模块学习(二)

标签:

原文地址:http://www.cnblogs.com/coolking/p/5595573.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!