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

  介绍

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

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

import  itertools    ,   时间=Str  & # 39; 122333 & lt; & lt; & lt; & lt; & # 39;,   时间=Lst  [],   for 关键,group  itertools.groupby拷贝(s):,   ,Lst.append(列表(集团)),   ,   print 地图(lambda  x: & # 39; & # 39; . join (x), Lst)

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

[& # 39; 1 & # 39; & # 39; 22 & # 39;, & # 39; 333 & # 39;, & # 39; & lt; & lt; & lt; & lt; & # 39;]

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

import  re    ,   时间=Str  & # 39; 122333 & lt; & lt; & lt; & lt; & # 39;,   时间=Lst  [],   ,   时间=Pat  re.compile (" # 39; ((。) \ 2 *) & # 39;),   时间=Rst  [x [0], for  x 拷贝re.findall (Pat, Str)],   ,   print  Rst

<强>备注:

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

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

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

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

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

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