您好我试图在python 2.7中使用正则表达式来搜索两个引号之间的文本,例如“你好那里”。现在我正在使用:
matchquotes = re.findall(r'"(?:\\"|.)*?"', text)
效果很好但只能使用此字符找到引号:“
但是我发现有时我解析的一些文字会使用这些不同的字符:“ ... ”
如何修改我的正则表达式,以便找到“ .. ”或“ .. ”或“ .. ”
答案 0 :(得分:1)
根据您正在进行的其他处理以及文本的来源,最好将所有引号转换为“而不是处理每个案例。”
答案 1 :(得分:1)
使用字符类可能会起作用,或者可能会破坏一切:
matchquotes = re.findall(r'[“”"](?:\\[“”"]|.)*?[“”"]', text)
如果你不太关心总是排队的匹配对,这可能会做你想要的。除非你构建一些模式并找到它们的交集,否则它们在另外两个中使用第三种类型的情况总是会让你感到困惑。
答案 2 :(得分:0)
我不是专家,但对于那些“花哨”的引用,我首先得到的代码类似于 \ xe2 \ x80 \ x9c 或 \ u2019 一张桌子。然后我会尝试匹配他们编写他们的正则表达式代码。为此,这可能会有所帮助:http://www.regular-expressions.info/refunicode.html
我希望它有所帮助!