Python regexp scape字符

Python regexp scape字符,python,regex,python-2.7,Python,Regex,Python 2.7,我正在尝试将一个旧程序从C#移植到Python,我需要使用一个正则表达式来匹配单词、单引号单词和双引号单词。我已经有了regexp,如下所示,但是当我在空闲状态下尝试它时,它与任何东西都不匹配 >>> import re >>> regex = re.compile("""[^\s"']+|"([^"]*)"|'([^']*)'""") >>> regex.findall("foo bar") [('', ''), ('', '')] 我使

我正在尝试将一个旧程序从C#移植到Python,我需要使用一个正则表达式来匹配单词、单引号单词和双引号单词。我已经有了regexp,如下所示,但是当我在空闲状态下尝试它时,它与任何东西都不匹配

>>> import re
>>> regex = re.compile("""[^\s"']+|"([^"]*)"|'([^']*)'""")
>>> regex.findall("foo bar")
[('', ''), ('', '')]
我使用一个三引号字符串来输入re,因为它除了反斜杠之外还包含单引号和双引号

有人能帮忙吗


谢谢。findall返回捕获组的内容。由于
foo
bar
[^\s”]+
匹配,因此所有捕获组均为空

要获取匹配对象的列表,请改用
re.finditer

>>> list(regex.finditer('foo bar'))
[<_sre.SRE_Match object; span=(0, 3), match='foo'>, <_sre.SRE_Match object; span=(4, 7), match='bar'>]
列表(regex.finditer('foobar')) [, ]
您能给我们一些输入示例并在其中找到您想要的内容吗?示例是代码中的第三行。它应该匹配任何用空格分隔的带引号或不带引号的单词。我刚刚尝试了redemo.py演示,它可以工作,所以我想我的代码不能工作只是因为regexp字符串是如何输入的。在tkinter演示中,我只输入了不带引号的正则表达式为[^\s”]+|“([^”]*)“|”([^']*)”