Python RE库字符串拆分,但将分隔符/分隔符保留为下一个字符串的一部分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python RE库字符串拆分,但将分隔符/分隔符保留为下一个字符串的一部分相关的知识,希望对你有一定的参考价值。

我见过类似的问题,但是似乎没有一个问题对我正在尝试做的事情有所帮助,并且花了很长时间尝试通过RE文档工作,但到目前为止还没有运气。

我当前正在分割字符串

my str = 'a+0b-2a+b-b'
re.split(r'([+-])', my_str)

这给了我列表中的字符串和分隔符

['a', '+', '0b', '-', '2a', '+', 'b', '-', 'b']

但是我希望下一个字符串中包含+或-的分隔符,而不是作为单独的项目。所以结果应该是:

['a', '+0b', '-2a', '+b', '-b']

感谢任何帮助

答案

如果您使用的是python 3.7+,则可以使用re.split和正向超前进行零长度匹配拆分:

string = 'a+0b-2a+b-b'
re.split(r'(?=[+-])', string)

# ['a', '+0b', '-2a', '+b', '-b']

演示:https://regex101.com/r/AB6UBa/1

另一答案

尝试使用re.findall

my_str = 'a+0b-2a+b-b'
re.findall(r'([+-]?[^+-]*)', my_str)

输出:

['a', '+0b', '-2a', '+b', '-b', '']

以上是关于Python RE库字符串拆分,但将分隔符/分隔符保留为下一个字符串的一部分的主要内容,如果未能解决你的问题,请参考以下文章

python学习--如何拆分有多种分隔符的字符串

如何拆分字符串但在开头保留分隔符[重复]

python拆分整型字符串并转为整型list

python拆分整型字符串并转为整型list

如何拆分含有多种分隔符的字符串?

Python字符串分割方法总结