2012-02-06 190 views
0

我有一個字符串"["Newyork","Delhi","paris"]"。我需要創建城市名單如下:正則表達式從字符串中獲取數據

cities = ["Newyork","Delhi","paris"] 

什麼會的Python爲它。我嘗試了幾個小時,正則表達式,但不能得到該怎麼辦it.could任何人幫我在這?

+0

正則表達式用於搜索事物;它不清楚你想在這裏搜索什麼(如果有的話)。 – 2012-02-06 12:36:58

+2

看看Rik的回答。就像他所顯示的那樣,您擁有的字符串已經「準備好」用於「json」模塊解析。 – heltonbiker 2012-02-06 12:42:09

回答

4

這不應該用正則表達式來完成。

也許您正在尋找json模塊:

>>> import json 
>>> json.loads('["Newyork","Delhi","paris"]') 
['Newyork', 'Delhi', 'paris'] 
+0

它的工作表示感謝 – Anshul 2012-02-06 12:44:28

-1

可以使用eval()這是一個內置的Python函數,並且不需要任何模塊:

>>> eval('["Newyork","Delhi","paris"]') 
['Newyork', 'Delhi', 'paris'] 
+3

eval是邪惡的...... – eumiro 2012-02-06 12:45:29

+2

罰款,直到你得到一個這樣的城市這樣的名字 'x「] [0]和sys.exit()#' – 2012-02-06 12:46:57

1

而且明顯AST .literal_eval替代方案是

>>> import ast 
>>> ast.literal_eval('["Newyork","Delhi","paris"]') 
['Newyork', 'Delhi', 'paris'] 
1

如何點亮eral eval?

>>>import ast 
>>>ast.literal_eval('["Newyork","Delhi","paris"]') 
['Newyork', 'Delhi', 'paris'] 

唯一的問題是您需要替換那些開始和結束引號。

+0

爲'ast'。意思是用引號替換?'''abc'''相當於''abc'' – eumiro 2012-02-06 12:44:05

+0

是的,但是看看OP的字符串,它是''「[」Newyork「,」Delhi「,」paris「]」''' – wim 2012-02-06 13:17:18

+0

所以,它在ast之前就是strip('''),但我認爲他並不認爲這些引號是字符串的一部分。 – 2012-02-06 13:27:40

相關問題