正则表达式与特殊转义规则的字符串匹配

时间:2013-06-03 18:28:30

标签: python regex string escaping

我正在尝试将特殊类型的字符串文字与一些时髦的转义规则相匹配。

一般表格如下:

"some string"

使用诸如“(。*?)”

之类的模式可以很容易地匹配

但是你可以通过加倍来引用它们,例如:

"hello "" there"变为hello " there
"hello """" there"变为hello "" there

这就是我的正则表达能力让我失望的地方。我该如何匹配这样的字符串?

哦,我正在使用python 3.1。

2 个答案:

答案 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']