我有一个Python字符串:
"的 整数 - 整数 "
我想把它变成列表
[ 整数 , 整数
整数 可以是正数或负数,并由-?[0-9]+
我怀疑re.split()
模块是工作的工具,但是我已经尝试过并且无法找到解决方案。
以下是输入=>的4个示例输出:
答案 0 :(得分:7)
使用positive lookbehind assertion:
>>> import re
>>> def f(s):
... return list(map(int, re.split(r'(?<=\d)-', s)))
...
...
>>> f("0-23")
[0, 23]
>>> f("3--7")
[3, -7]
>>> f("-3-7")
[-3, 7]
>>> f("-3--7")
[-3, -7]
仅当模式前面有数字(-
)时,模式才匹配\d
。
如果使用Python 2.x,则可以省略list(..)
。