内置<string>.split()
过程仅使用空格来分割字符串。
我想定义一个过程split_string,它接受两个输入:要拆分的字符串和一个包含所有被视为分隔符的字符的字符串。
该过程应该返回一个字符串列表,这些字符串会破坏列表中字符的源字符串。
def split_string(source,list):
...
>>> print split_string("This is a test-of the,string separation-code!",",!-")
['This', 'is', 'a', 'test', 'of', 'the', 'string', 'separation', 'code']
答案 0 :(得分:1)
re.split()
有效:
>>> import re
>>> s = "This is a test-of the,string separation-code!"
>>> re.split(r'[ \-\,!]+', s)
['This', 'is', 'a', 'test', 'of', 'the', 'string', 'separation', 'code', '']
在你的情况下,搜索单词似乎更有用:
>>> re.findall(r'[\w']+', s)
['This', 'is', 'a', 'test', 'of', 'the', 'string', 'separation', 'code']
答案 1 :(得分:1)
这是一个可以重复使用的功能 - 它也可以逃避特殊字符:
def escape_char(char):
special = ['.', '^', '$', '*', '+', '?', '\\', '[', ']', '|']
return '\\{}'.format(char) if char in special else char
def split(text, *delimiters):
return re.split('|'.join([escape_char(x) for x in delimiters]), text)
它不会自动删除空条目,例如:
>>> split('Python, is awesome!', '!', ',', ' ')
['Python', '', 'is', 'awesome', '']