Python中的Python跳过连续分隔符

时间:2015-08-18 11:39:34

标签: python regex split

我需要用“\”分隔符拆分字符串。但我必须跳过连续发生的事件。 更确切地说,对于我的目标,“// sensor1”需要像'/ sensor1'一样阅读。

import re
a = "root/master/sensors//sensor1/value"
re.split("/+", a)

所以我需要获得:

['root', 'master', 'sensors//sensor1', 'value']

我试过那段代码,但也许我在正则表达式中做了一个错误。

3 个答案:

答案 0 :(得分:1)

x="root/master/sensors//sensor1/value"
print re.split(r"(?<!\/)\/",x)

您可以在此处使用lookbehind来确保只有一个/分割。

输出:['root', 'master', 'sensors', '/sensor1', 'value']

答案 1 :(得分:1)

您可以使用positive look behind根据单词字符前面的正斜杠拆分文本:

>>> re.split(r"(?<=\w)/", a)
['root', 'master', 'sensors', '/sensor1', 'value']

答案 2 :(得分:1)

您可以在/之前使用word boundary,并且需要在/左侧使用单词字母(请注意,不必在Python中对其进行转义) ):

import re
a = "root/master/sensors//sensor1/value"
print(re.split(r"\b/", a))

请参阅demo

输出:

['root', 'master', 'sensors', '/sensor1', 'value']