我需要用“\”分隔符拆分字符串。但我必须跳过连续发生的事件。 更确切地说,对于我的目标,“// sensor1”需要像'/ sensor1'一样阅读。
import re
a = "root/master/sensors//sensor1/value"
re.split("/+", a)
所以我需要获得:
['root', 'master', 'sensors//sensor1', 'value']
我试过那段代码,但也许我在正则表达式中做了一个错误。
答案 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']