python正则表达式匹配aabb_Python正则表达式拆分多个匹配项
我正在尝试将包含2个不同字符的序列的字符串拆分为多个组.如果我们假设字符是a和b,则用于分组的纯文本规则为:
>组包含0 a,后跟1 b
>后面的所有a都包含在下一组中,除非我们在单词末尾.
例如:处理测试后,目标是分成预期的组.
tests = ['abab',
'ababab',
'aabab',
'aababa',
'aba',
'baba']
expected = [['ab','ab'],
['ab','ab','ab'],
['aab','ab'],
['aab','aba'],
['aba'],
['b','aba']]
我最近得到的是以下内容:
import re
# filter() returns iterator not list in Python 3
def testing(s):
return list(filter(None, re.compile('(a*b+a*(?=$))').split(s)))
output = [testing(s) for s in tests]
output
[['ab', 'ab'], ['abab', 'ab'], ['aab', 'ab'], ['aab', 'aba'], ['aba']]
在1-2组上效果很好,但对于大于1-2的组效果不好,这意味着我的正则表达式需要改进.我应该重新考虑这种方法吗?我可能可以使用for循环来做一些蛮力的工作,但是希望能做些更优雅的事情.
N.B .: This post使我相信.split()可能不是这里的解决方法,但是到目前为止,我已经获得了最好的结果.
python正则表达式匹配aabb_Python正则表达式拆分多个匹配项相关推荐
- python正则匹配_Python正则表达式初识(五)
原标题:Python正则表达式初识(五) 正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线"|".竖线"| ...
- Python:利用原生函数count或正则表达式compile、findall、finditer实现匹配统计(包括模糊匹配的贪婪匹配、懒惰匹配)
Python:利用原生函数count或正则表达式compile.findall.finditer实现匹配统计(包括模糊匹配的贪婪匹配.懒惰匹配) 目录 利用原生函数count或正则表达式compile ...
- python正则匹配_python 正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- python正则匹配_Python正则表达式只匹配一次
我正在尝试创建一个简单的降价乳胶转换器,只是为了学习 python和基本的正则表达式,但我不知道试图弄清楚为什么下面的代码不起作用: re.sub (r'\[\*\](.*?)\[\*\]: ?(.* ...
- 【python】常见的正则表达式用法;匹配字符串
本文仅仅展现了python正则表达式中的一小部分内容,但是包含了实际应用中非常被频繁使用的例子,本文重在举例,即不需要相关语法知识就能够会用~ 目录 re.match() re.findall() 匹 ...
- python脚本 —— 文本匹配与正则表达式
文章目录 创建正则表达式对象 正则表达式的字符分类 自定义字符分类:[] 正则表达式匹配更多模式 利用括号分组: () 利用管道匹配多个条件: | 利用问号实现可选匹配:❓ 利用星号匹配零次或者多次: ...
- python正则表达式模糊匹配_python 正则表达式
正则表达式的作用:用来匹配字符串 一.字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.f ...
- python正则匹配_Python正则表达式详解
正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述.匹配某个句法规则的字符串,常被用来检索.替换那些符合某个模式(规则)的文本.最初的正则表达式出现于理论计算机 ...
- python 正则表达式判断_正则表达式教程python | Python如何判断正则表达式是否匹配成功...
python 正则表达式 关于 和*的问题 正则表达式教程里在python的帮助里有.,仔细的看一次后找一个正则表达式验证工具.其中有一个就是python写的.多试几次. 正则表达式挺难掌握,掌握后又 ...
最新文章
- Wordpress安装简要说明
- linux xorg.0.log,Red Hat无法登录,Cannot open log file /var/log/Xorg.0.log
- 从生产到分发:AI正在成为“互联网内容平台”的效率神器
- Android 蓝牙相关的广播
- Python PyCrypto,Paramiko模块安装和使用
- macos复制粘贴快捷键 快速_探究Mac OS十大键盘快捷键
- 【cocos2d-x 手游研发小技巧(4)与Android混编实现换“头像图片”】
- (php毕业设计)基于php旅游信息网站管理系统源码
- 整体刚度矩阵matlab,单元刚度矩阵matlab
- 相分离和长链非编码RNA之间的故事Paraspeckles: Where Long Noncoding RNA Meets Phase Separation
- java怎么实现历史修改记录_java历史记录封装实现
- “幽灵刹车”困扰特斯拉
- error converting to execution character set illegal byte sequence报错解决办法
- 利用计算机名称共享打印机步骤,如何连接其他电脑共享的打印机(图文教程)...
- 软件编程:常见缩写、简称
- Python_常用模块
- 纪念相对论发表110周年
- matlab求矩阵的谱半径,【什么是矩阵的谱半径?怎么求?】百度-谱半径
- 杭州摩托车驾驶证报考流程
- 服务器在局域网联机中显示,网络版局域网内如何连接设置多台电脑联机操作?...
热门文章
- 【Vegas原创】X connection to localhost:11.0 broken (explicit kill or server shutdown)解决方法...
- html 5 本地数据库(Web Sql Database)
- javascript随堂练习(分支,循环语句)
- MTK-TP(电阻屏校准程序ts_lib移植)
- 1070: [SCOI2007]修车
- SpringBoot注解大全(转)
- (转)在ios android设备上使用 Protobuf (使用dll方式)
- 9读书1-我在义务发财(1)
- 常用文献管理软件使用经验
- maven setting.xml 中文配置详解(全配置)