拆分2个可能是负数的连字符

Mik*_*ike 4 python regex string split

我有一个Python字符串:

" 整数 - 整数 "

我想把它变成清单

[ 整数,整数 ]

其中整数可以是正数或负数,并且可以匹配-?[0-9]+

我怀疑该re.split()模块是工作的工具,但我已经尝试过并且无法找到解决方案.

以下是输入=>输出的4个示例:

  • "3-7"=> [3,7]
  • "3--7"=> [3,-7]
  • "-3-7"=> [-3,7]
  • "-3--7"=> [ - 3,-7]

fal*_*tru 7

使用积极的lookbehind断言:

>>> 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]
Run Code Online (Sandbox Code Playgroud)

-仅当模式前面带有digit(\d)时,模式才会匹配.

list(..)如果使用Python 2.x,则可以省略.