如何根据冒号或连字符拆分字符串?

dus*_*ace 4 python string split

a = '4-6'
b= '7:10'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了

a.split('-')
a.split(':')
Run Code Online (Sandbox Code Playgroud)

我怎样才能编写可以接受字符串并删除冒号和连字符的代码?除了将相同的字符串拆分两次之外,还有更好的方法吗?

iCo*_*dez 9

要拆分多个分隔符,可以使用re.split和字符集:

import re
re.split('[-:]', a)
Run Code Online (Sandbox Code Playgroud)

演示:

>>> import re
>>> a = '4-6'
>>> b = '7:10'
>>> re.split('[-:]', a)
['4', '6']
>>> re.split('[-:]', b)
['7', '10']
Run Code Online (Sandbox Code Playgroud)

但请注意,-它也用于指定字符集中的字符范围.例如,[A-Z]将匹配所有大写字母.为了避免这种行为,你可以-像我上面那样把它放在集合的开头.有关Regex语法的详细信息,请参阅文档中的正则表达式语法.

  • @MalikBrahimi - 为什么?在我看来,它们是每个程序员都应该注意的非常有用的工具.现在,并不是说它们应该被用于*无处不在*,但在这种情况下,Regex解决方案很简单. (2认同)