Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于与特殊转义规则匹配的字符串的正则表达式_Python_Regex_String_Escaping - Fatal编程技术网

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

Python 用于与特殊转义规则匹配的字符串的正则表达式,python,regex,string,escaping,Python,Regex,String,Escaping,我试图用一些时髦的转义规则来匹配特殊类型的字符串文字 一般形式如下所示: "some string" 使用诸如“(.*)”之类的模式很容易匹配 但是,可以通过将引号加倍来转义引号,例如: 那里的“你好”变成那里的“你好” 那里的“你好”变成那里的“你好” 这就是我的正则表达式技能让我失望的地方。我如何匹配这样的字符串 哦,我使用的是python 3.1。没有使用正则表达式,但您已经指定了python,因此有一种方法可以获得预期的输出: >>> import csv >&

我试图用一些时髦的转义规则来匹配特殊类型的字符串文字

一般形式如下所示:

"some string"
使用诸如“(.*)”之类的模式很容易匹配

但是,可以通过将引号加倍来转义引号,例如:

那里的“你好”
变成那里的“你好”
那里的“你好”
变成那里的“你好”

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


哦,我使用的是python 3.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']

这只是找到文本,它不会通过替换双引号来解码它们。

我认为这种格式更好。如果你不这么认为,请随意回滚。它看起来确实更好。尽管如此,我仍然不确定你想做什么。你有输入字符串,如
“hello”“there”
“hello”“there”“
并希望输出分别为
hello”there
hello”there
,或者?正则表达式不必取消对字符串的scape,我可以稍后再这样做,但是我需要匹配整个字符串。我当前的模式在碰到“double”时停止匹配,而它应该持续到第一个字符串“这不是双倍的。如果出现
”“
”,您希望得到什么?您能先匹配字符串,然后替换引号吗?
regex = re.compile(r'"(?:[^"]|"")*"')