使用正则表达式怎么将字符串进行分组

本篇文章给大家分享的是有关使用正则表达式怎么将字符串进行分组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、实际上可以借助itertools模块的groupby()方法来处理:

import itertools    Str = '122333<<<<'  Lst = []  for key,group in itertools.groupby(s):   Lst.append(list(group))    print map(lambda x: ''.join(x), Lst)

上面的处理,还是比较有技巧,也能得到想要的输出结果

['1', '22', '333', '<<<<']

二、但更酷点,更技巧处理方式是用正则表达式来处理:

import re    Str = '122333<<<<'  Lst = []    Pat = re.compile(r'((.)\2*)')  Rst = [x[0] for x in re.findall(Pat, Str)]    print Rst

备注:

1. (.)                # .匹配任意字符;(.)做分组,方便后面反向引用

2. \2*                # \2对里面括号的反向引用;*代表是0个到多个;

3. ((.)\2*)           # 连起来就是任意一个或多个字符组成的分组;

4. (.)\1*             # 这种方式则可以取出唯一的值['1', '2', '3', '<'];同样非常方便

以上就是使用正则表达式怎么将字符串进行分组,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。