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库字符串拆分,但将分隔符/分隔符保留为下一个字符串的一部分的主要内容,如果未能解决你的问题,请参考以下文章