我正在尝试将特殊类型的字符串文字与一些时髦的转义规则相匹配。
一般表格如下:
"some string"
使用诸如“(。*?)”
之类的模式可以很容易地匹配但是你可以通过加倍来引用它们,例如:
"hello "" there"
变为hello " there
"hello """" there"
变为hello "" there
这就是我的正则表达能力让我失望的地方。我该如何匹配这样的字符串?
哦,我正在使用python 3.1。
答案 0 :(得分:3)
regex = re.compile(r'"(?:[^"]|"")*"')
这只是找到文字,它不会通过替换加倍的引号来解码它们。
答案 1 :(得分:1)
不使用正则表达式,但是你已经指定了Python,所以这里有一种获得预期输出的方法:
>>> import csv
>>> strings = ['"some string"', '"hello "" there"', '"hello """" there"']
>>> for s in strings:
print next(csv.reader([s]))
['some string']
['hello " there']
['hello "" there']