我正在尝试编写一个使用两个字符作为标记边界的解析器,但我无法找出允许我在对整个字符串进行正则表达式转义时忽略它们的正则表达式。
给定一个字符串:
This | is || token || some ||| text
我想结束:
This \| is || token || some \|\|\| text
所有的 |除非其中两个在一起,否则都会被转义。
是否有一个正则表达式可以让我转义每个 |那不是一对吗?
请您参考如下方法:
不需要正则表达式。毕竟您正在使用 Python。 :)
>>> s="This | is || token || some ||| text"
>>> items=s.split()
>>> items
['This', '|', 'is', '||', 'token', '||', 'some', '|||', 'text']
>>> for n,i in enumerate(items):
... if "|" in i and i.count("|")!=2:
... items[n]=i.replace("|","\|")
...
>>> print ' '.join(items)
This \| is || token || some \|\|\| text
