代码应该拆分字符串而不删除分隔符。
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。
在字符类(即
[...]
)中,连字符表示一系列字符。通常人们使用 [a-z]
来表示所有 26 个小写字母。类 [,-,]
表示 ,
和 ,
之间的所有字符,与逗号相同。
类
[+,*,/,-]
相当于 [+,*/-]
,因为同一字符多次出现。
类
[+,*,-,/]
相当于 [+,*/]
。
要在字符类中包含显式逗号,它必须是类中的第一个或最后一个。因此,要在
[+,*/]
中添加逗号,请使用 [-+,*/]
或 [+,*/-]
。