在弯引号中匹配一个字符串

时间:2012-10-31 06:02:15

标签: python regex

您好我试图在python 2.7中使用正则表达式来搜索两个引号之间的文本,例如“你好那里”。现在我正在使用:

matchquotes = re.findall(r'"(?:\\"|.)*?"', text)

效果很好但只能使用此字符找到引号:

但是我发现有时我解析的一些文字会使用这些不同的字符: ...

如何修改我的正则表达式,以便找到 .. .. ..

3 个答案:

答案 0 :(得分:1)

根据您正在进行的其他处理以及文本的来源,最好将所有引号转换为“而不是处理每个案例。”

答案 1 :(得分:1)

使用字符类可能会起作用,或者可能会破坏一切:

matchquotes = re.findall(r'[“”"](?:\\[“”"]|.)*?[“”"]', text)

如果你不太关心总是排队的匹配对,这可能会做你想要的。除非你构建一些模式并找到它们的交集,否则它们在另外两个中使用第三种类型的情况总是会让你感到困惑。

答案 2 :(得分:0)

我不是专家,但对于那些“花哨”的引用,我首先得到的代码类似于 \ xe2 \ x80 \ x9c \ u2019 一张桌子。然后我会尝试匹配他们编写他们的正则表达式代码。为此,这可能会有所帮助:http://www.regular-expressions.info/refunicode.html

我希望它有所帮助!

相关问题