关于python:如何基于冒号或连字符拆分字符串?

How to split a string based on either a colon or a hyphen?

本问题已经有最佳答案,请猛点这里访问。
1
2
a = '4-6'
b= '7:10'

我已经试过了

1
2
a.split('-')
a.split(':')

我如何编写可以接受任意一个字符串并同时去掉冒号和连字符的代码?除了把同一根绳子分开两次,还有更好的方法吗?


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

1
2
import re
re.split('[-:]', a)

演示:

1
2
3
4
5
6
7
>>> import re
>>> a = '4-6'
>>> b = '7:10'
>>> re.split('[-:]', a)
['4', '6']
>>> re.split('[-:]', b)
['7', '10']

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


可以逐个替换,然后拆分整个字符串:

1
parts = your_string.replace('-', ':').split(':')