我正在尝试使用下面的所有分隔符来分割一个字符串,例如下面的字符串,但是只能一次。
string = 'it; seems; like\ta good\tday to watch\va\vmovie.'
delimiters = '\t \v ;'
在这种情况下,输出为:
['it', ' seems; like', 'a good\tday to watch', 'a\vmovie.']
显然,上面的示例是一个胡说八道的示例,但是我正在尝试了解这是否可行。会积极参与正则表达式吗?
抱歉,是否曾经有人问过这个问题。我做了一些搜索,找不到与我的示例非常相似的东西。谢谢你的时间!
一个简单的算法就可以
test_string = r'it; seems; like\ta good\tday to watch\va\vmovie.'
delimiters = [r'\t', r'\v', ';']
# find the index of each first occurence and sort it
delimiters = sorted(delimiters, key=lambda delimiter: test_string.find(delimiter))
splitted_string = [test_string]
# perform split with option maxsplit
for index, delimiter in enumerate(delimiters):
if delimiter in splitted_string[-1]:
splitted_string += splitted_string[-1].split(delimiter, maxsplit=1)
splitted_string.pop(index)
print(splitted_string)
# ['it', ' seems; like', 'a good\\tday to watch', 'a\\vmovie.']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句