2016-06-13 65 views
0
x = re.findall(r'FROM\s(.*?\s)(WHERE|INNER|OUTER|JOIN|GROUP,data,re.DOTALL) 

我正在使用上述表达式来解析oracle sql查询并获取结果。 我得到多个匹配,并希望每行一行地打印它们。 我该怎么做。 有些结果甚至在它们之间有“,”。如何拆分包含“,”在数据中的所有结果

+0

结果是什么你得到?什么是你匹配的字符串? – AKS

+0

'结果在x:print(result)' – Keatinge

+0

你能给出输入和期望的输出吗? – Anurag

回答

1

你可以试试这个:

for elt in x: 
    print('\n'.join(elt.split(','))) 

join返回逗号分隔的元素,然后将其再次\n(新线)加入列表。因此,你会得到每行一个结果。

+0

问题是如果我在数据本身有“,”。 – nnnnmmm

+0

你的意思是你想保留这些逗号? – 3kt

0

您的结果返回列表中。 从https://docs.python.org/2/library/re.html

re.findall(图案,字符串标志= 0)返回图案的所有非重叠 匹配字符串,作为字符串的列表。

如果您不熟悉数据结构的详细信息,here 你应该能够轻松地与一个迭代超过返回列表循环:

for matchedString in x: 
    #replace commas 
    n = matchedString.replace(',','') #to replace commas 
    #add to new list or print, do something, any other logic 
    print n 
相关问题