Python拆分一个带有多个分隔符的字符串并找到使用的分隔符

时间:2015-07-23 07:02:48

标签: python regex string split

如何使用多个分隔符拆分字符串,并找出使用哪个分隔符来分割maxsplit为1的字符串。

import re

string ="someText:someValue~"
re.split(":|~",string,1)

返回['someText', 'someValue~']。在这种情况下,“:”是分割字符串的分隔符。

如果string为string ="someText~someValue:",则“〜”将分隔符以分割字符串

有没有办法找出使用了哪个分隔符并将其存储在变量中。

PS:someText和someValue可能包含特殊字符,不会在拆分中使用。例如:some-Text,some_Text,some $ Text

3 个答案:

答案 0 :(得分:4)

string ="someText:someValue~"
print re.split("(:|~)",string,1)

如果你放入组,它将出现在返回的列表中。你可以从1列表索引中找到它。

答案 1 :(得分:1)

您可以使用re.findall。

>>> string ="someText:someValue~"
>>> re.findall(r'^([^:~]*)([:~])([^:~].*)', string)
[('someText', ':', 'someValue~')]

答案 2 :(得分:0)

您可以使用re.findall使用look around查找无字分隔符:

>>> string ="someText:someValue~andthsi#istest@"
>>> re.findall('(?<=\w)(\W)(?=\w)',string)
[':', '~', '#']