如何根据冒号或连字符拆分字符串?
How to split a string based on either a colon or a hyphen?
a = '4-6'
b= '7:10'
我已经试过了
a.split('-')
a.split(':')
我如何编写可以接受任一字符串并去掉冒号和连字符的代码?除了将同一个字符串拆分两次之外还有更好的方法吗?
要拆分多个分隔符,您可以使用 re.split
和一个字符集:
import re
re.split('[-:]', a)
演示:
>>> import re
>>> a = '4-6'
>>> b = '7:10'
>>> re.split('[-:]', a)
['4', '6']
>>> re.split('[-:]', b)
['7', '10']
但是请注意,-
也用于指定字符集中的字符范围。例如,[A-Z]
将匹配所有大写字母。为避免这种行为,您可以像我上面那样将 -
放在集合的开头。有关 Regex 语法的更多信息,请参阅文档中的 Regular Expression Syntax。
您可以用一个替换另一个然后拆分整个字符串:
parts = your_string.replace('-', ':').split(':')
a = '4-6'
b= '7:10'
我已经试过了
a.split('-')
a.split(':')
我如何编写可以接受任一字符串并去掉冒号和连字符的代码?除了将同一个字符串拆分两次之外还有更好的方法吗?
要拆分多个分隔符,您可以使用 re.split
和一个字符集:
import re
re.split('[-:]', a)
演示:
>>> import re
>>> a = '4-6'
>>> b = '7:10'
>>> re.split('[-:]', a)
['4', '6']
>>> re.split('[-:]', b)
['7', '10']
但是请注意,-
也用于指定字符集中的字符范围。例如,[A-Z]
将匹配所有大写字母。为避免这种行为,您可以像我上面那样将 -
放在集合的开头。有关 Regex 语法的更多信息,请参阅文档中的 Regular Expression Syntax。
您可以用一个替换另一个然后拆分整个字符串:
parts = your_string.replace('-', ':').split(':')