python 正则表达式拆分但保留分隔符返回与预期值不同的值

5kgi1eie  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(118)

我试图拆分一个字符串,该字符串表示+-<<>>上的一个简单数学方程,但保留符号。我找不到问题所在。

>>> re.split(r'( \+ )|( \<\< )|( \- )|( \>\> )', 'x - x')
<<< ['x', None, None, ' - ', None, 'x']  # Expected ['x', '-', 'x']

>>> re.split(r'( \+ )| \<\< | \- | \>\> ', 'x - x')
<<< ['x', None, 'x']  # Expected ['x', '-', 'x']

>>> re.split(r'( \+ )| \<\< | \- | \>\> ', 'x + x')
<<< ['x', '+', 'x']  # The form I am looking for
vof42yt1

vof42yt11#

您需要将这些选项视为单个捕获组,如下所示:

( \+ | \<\< | \- | \>\> )

可以像这样使用

re.split(r'( \+ | \<\< | \- | \>\> )', 'x + x')

相关问题