Python RE library String Split 但保留 delimiters/separators 作为下一个字符串的一部分
Python RE library String Split but keep the delimiters/separators as part of the next string
我见过类似的问题,但其中 none 似乎对我正在尝试做的事情有帮助,并且我花了很长时间尝试通过 RE 文档来工作,但到目前为止没有运气。
我目前正在拆分字符串
my str = 'a+0b-2a+b-b'
re.split(r'([+-])', my_str)
它给了我列表中的字符串和分隔符
['a', '+', '0b', '-', '2a', '+', 'b', '-', 'b']
但我希望分隔符(+ 或 -)包含在下一个字符串中,而不是作为单独的项目。所以结果应该是:
['a', '+0b', '-2a', '+b', '-b']
感谢任何帮助
试试 re.findall
:
my_str = 'a+0b-2a+b-b'
re.findall(r'([+-]?[^+-]*)', my_str)
输出:
['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']
我见过类似的问题,但其中 none 似乎对我正在尝试做的事情有帮助,并且我花了很长时间尝试通过 RE 文档来工作,但到目前为止没有运气。
我目前正在拆分字符串
my str = 'a+0b-2a+b-b'
re.split(r'([+-])', my_str)
它给了我列表中的字符串和分隔符
['a', '+', '0b', '-', '2a', '+', 'b', '-', 'b']
但我希望分隔符(+ 或 -)包含在下一个字符串中,而不是作为单独的项目。所以结果应该是:
['a', '+0b', '-2a', '+b', '-b']
感谢任何帮助
试试 re.findall
:
my_str = 'a+0b-2a+b-b'
re.findall(r'([+-]?[^+-]*)', my_str)
输出:
['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']