这篇文章主要给大家介绍了关于利用正则表达式将字符串分组的相关资料,文中分别介绍了利用itertools模块的groupby()方法和利用正则表达式是如何实现的,通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。
前言
最近工作中遇到一个问题,需求是碰到'122333
一、实际上可以借助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', '
二、但更酷点,更技巧处理方式是用正则表达式来处理:
10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A
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', '









