<p>您可以使用类似于:</p>
<pre><code>import re
str = 'SUM(case when(A.money-B.money>1000 and A.unixtime-B.unixtime<=890769 and B.col10 = "A" and B.col11 = "12" and B.col12 = "V") then 10 end) as finalCond0, MAX(case when(A.money-B.money<0 and A.unixtime-B.unixtime<=6786000 and B.cond1 = "A" and B.cond2 = "4321" and B.cond3 in ("E", "F", "G")) then A.col10 end) as finalCond1, SUM(case when(A.money-B.money>0 and A.unixtime-B.unixtime<=6786000 and B.cond1 = "A" and B.cond2 = "1234" and B.cond3 in ("A", "B", "C")) then 2 end) as finalCond2'
result = re.finditer('as\s+[a-zA-Z0-9]+', str);
commas = []
parts = []
for reg in result:
end = reg.end()
if(len(str) > end and str[end] == ','):
commas.append(end)
idx = 0
for comma in commas:
parts.append(str[idx:comma])
idx = comma + 1
parts.append(str[idx:])
print(parts)
</code></pre>
<p>在<code>commas</code>数组中,将有需要拆分的逗号。输出将是:</p>
^{pr2}$
<p>在parts中,您将拥有包含这些部分的最终数组(不确定此实现是否是最佳方法):</p>
<pre><code>[
'SUM(case when(A.money-B.money>1000 and A.unixtime-B.unixtime<=890769 and B.col10 = "A" and B.col11 = "12" and B.col12 = "V") then 10 end) as finalCond0',
' MAX(case when(A.money-B.money<0 and A.unixtime-B.unixtime<=6786000 and B.cond1 = "A" and B.cond2 = "4321" and B.cond3 in ("E", "F", "G")) then A.col10 end) as finalCond1',
' SUM(case when(A.money-B.money>0 and A.unixtime-B.unixtime<=6786000 and B.cond1 = "A" and B.cond2 = "1234" and B.cond3 in ("A", "B", "C")) then 2 end) as finalCond2'
]
</code></pre>