首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不丢失python中的match参数的情况下根据某种模式分隔字符串?

如何在不丢失python中的match参数的情况下根据某种模式分隔字符串?
EN

Stack Overflow用户
提问于 2013-05-13 22:58:13
回答 2查看 71关注 0票数 0

这是我拥有的字符串(忽略空格)

代码语言:javascript
运行
复制
a = u'(%o3) (9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2 \r\n-2*t)\r\n/3)\r\n /5\r\n(%i4) '

我如何将其拆分成这样的东西:

代码语言:javascript
运行
复制
b = ['(%o3','(9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2\r\n-2*t)\r\n/3)\r\n /5','(%i4)' ]

这有点像检查模式(%o\d+)和(%i\d+),在它们出现的地方拆分,但不会丢失模式本身,a.split( blah)通常会丢失“废话”。在我的背景下,“废话”是重要的,我不能松开它。

模式可能会出现两次以上,因此我需要分隔(%o\d+)和(%i\d+)以及它们之间/之前/之后的任何文本。做这件事最好的方法是什么?我不确定正则表达式是否可以做到这一点,或者不丢失拆分参数的现有text.split修改是否可以做到(如果它存在)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-13 23:44:36

如果使用捕获括号将匹配参数re.split括起来,也可以返回匹配参数。

代码语言:javascript
运行
复制
print re.split('(\(%[oi]\d+\))', a)

更多信息here

票数 3
EN

Stack Overflow用户

发布于 2013-05-14 00:05:02

描述

在python中,您可以使用

this link to regex (\([%][a-z][0-9]{1,}\))(.*?)(\([%][a-z][0-9]{1,}\))$

在对字符串应用时

代码语言:javascript
运行
复制
(%o3)  (9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2\r\n-2*t)\r\n/3)\r\n /5\r\n(%i4)

生成以下分组的匹配项

代码语言:javascript
运行
复制
group(0) - the entire string
group(1) - (%o3)
group(2) - (9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2\r\n-2*t)\r\n/3)\r\n /5\r\n
group(3) - (%i4)

摘要

  • (打开第一个
  • \(组匹配bracket
  • [%]需要一个开放四舍五入sign
  • [a-z]需要任何小写字母character
  • [0-9]{1,}在任何sequence
  • \)中需要任意数量的数字需要关闭四舍五入bracket
  • )关闭*first*group
  • (打开第二个组match
  • .*?匹配打开和之间的整个中心子字符串close substrings
  • )关闭*second*组Match
  • (打开third组匹配sign
  • [a-z]需要一个开放的舍入bracket
  • [%]要求有一个百分比sign
  • [a-z]需要任何小写字母character
  • [0-9]{1,}需要任意数量的数字在任何sequence
  • \)中需要一个关闭四舍五入bracket
  • )关闭group
  • $ 确保有字符串结尾。这会强制第三组位于字符串的末尾,而不是悬停在

中间的某个位置

免责声明

在您的源问题中,似乎第三组之前的\r\n子串被删除了,并且结果文本中包含了一些额外的空格,然后是源文本中的位置。我假设那些是偶然引入或删除的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16525155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档