擅长:python、mysql、java
<p>好吧,最后我决定分两步来完成。在</p>
<p>首先,我检查表达式在语法上是否有效,然后将其分解为各个部分:</p>
<pre><code>def parse(expr):
if re.match(r'\A(("[\w\s]+"|\w+)\s+)*\Z', expr):
return re.findall(r'("[\w\s]+"|\w+)', expr)
</code></pre>
<p>所以:</p>
^{pr2}$
<p>我有90%的把握这个方法对所有的字符串都适用,但是如果有人能有一个更通用的解决方案,我还是会感兴趣的,这对我来说似乎有点胡思乱想。在</p>
<p>感谢SilentGhost和Alan Moore的帮助。我以前不知道pythonscsv或regex lookaheads,了解一下这些可能会对我有所帮助。在</p>