当前位置: 首页 > 面试题库 >

Python:如何在字符串拆分中包含定界符?

从焱
2023-03-14
问题内容

我想用多个定界符分割一个字符串,但将定界符保留在结果列表中。我认为这是解析任何一种公式的初始步骤都是有用的,而且我怀疑有一个不错的Python解决方案

有人在这里用Java问了类似的问题。

例如,典型的拆分如下所示:

>>> s='(twoplusthree)plusfour'
>>> s.split(f, 'plus')
['(two', 'three)', 'four']

但是我正在寻找一种添加加号(或保留它)的好方法:

['(two', 'plus', 'three)', 'plus', 'four']

最终,我想对每个运算符和括号进行此操作,因此,如果有一种方法

['(', 'two', 'plus', 'three', ')', 'plus', 'four']

一劳永逸,那就更好了。


问题答案:

您可以使用Python的re模块来实现。

import re
s='(twoplusthree)plusfour'
list(filter(None, re.split(r"(plus|[()])", s)))

如果只需要迭代器,则可以省略列表。



 类似资料:
  • 问题内容: 我有以下字符串(Java 1.5): 我需要一个数组: 用Java最方便的方法是什么? 问题答案: 这将为您提供所需的数组,只有第一项为空。和: 这将使数组没有空的第一项。 此处的关键是零宽度正向超前(非捕获构造)(请参阅regex pattern docs)。 表示“或者;或:” 是字边界的-在那里是为了不将第一个视为定界符(因为它是序列的开头)

  • 现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。

  • 我想用空格和特殊字符(如果有的话)来分割字符串。例如:用于表示移动交换中心(信号强度)。 目前我正在使用正则表达式来拆分字符串,但我无法同时实现空格和特殊字符的拆分。 更新代码:

  • 问题内容: 这可能是重复的。我在Swift中找不到答案,所以我不确定。 删除定界符。如果仅用一个可能的字符分开,则很容易将其重新添加。但是当你有一套的时候呢? 还有其他分割方法吗? 问题答案: 此方法适用于,而不是s,但是它应该很容易适应: 您可以这样使用它: 或者,此版本使用for循环,并 在 定界符 后 拆分: 或者,如果你想获得最斯威夫特功能为一体的功能(,,一个协议扩展,一个邪恶的,以及选

  • 问题内容: 如何将这个列表分为两个列表,一个包含字符串,另一个包含整数(以 雅致/ pythonic 方式)? 输出: 注意:没有实现这样的列表,只是想过如何找到一个很好的答案(有没有?)来解决这个问题。 问题答案: 正如其他人在评论中提到的那样,您应该真正开始思考如何摆脱最初包含非均匀数据的列表。但是,如果确实 不能 做到这一点,我将使用defaultdict:

  • 问题内容: 我有一个多行字符串,该字符串由一组不同的定界符定界: 我可以使用将该字符串拆分为多个部分,但似乎无法获取与定界符匹配的实际字符串。 换句话说,这就是我得到的: 这就是我要的 是否有任何JDK使用分隔符regex拆分字符串但又保留分隔符的方法? 问题答案: 你可以使用和。像这样: 你将获得: 最后一个是你想要的。 等于选择之前;或之后的空字符;。 希望这可以帮助。 编辑 Fabian S