文本根据特定分隔符的顺序进行分割

问题描述 投票:0回答:1

代码应该拆分字符串而不删除分隔符。

import re
operations = '8-8/84'
operations = re.split(r'([+,*,/,-])', operations)

执行代码,操作最终得到这个值:

['8', '-', '8', '/', '84']

但是,如果不是以“-”结束分隔符 [+,*,/,-],而是以任何其他分隔符结束,则程序将忽略“-”分隔符。与:

import re
operations = '8-8/84'
operations = re.split(r'([+,*,-,/])', operations)

“操作”的最终值为:

['8-8', '/', '84']

为什么只有“-”才会出现这种情况?我通过复制粘贴确保分隔符中的“-”与操作初始值中的“-”相同。使用Python 3。

python regex split python-re
1个回答
0
投票

在字符类(即

[...]
)中,连字符表示一系列字符。通常人们使用
[a-z]
来表示所有 26 个小写字母。类
[,-,]
表示
,
,
之间的所有字符,与逗号相同。

[+,*,/,-]
相当于
[+,*/-]
,因为同一字符多次出现。

[+,*,-,/]
相当于
[+,*/]

要在字符类中包含显式逗号,它必须是类中的第一个或最后一个。因此,要在

[+,*/]
中添加逗号,请使用
[-+,*/]
[+,*/-]

© www.soinside.com 2019 - 2024. All rights reserved.