2016-06-13 68 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 
相關問題