十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章给大家分享的是有关使用正则表达式怎么将字符串进行分组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业合水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
一、实际上可以借助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', '<'];同样非常方便
以上就是使用正则表达式怎么将字符串进行分组,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。