2013-11-02 41 views
-3
... html ... 
[{"url":"/test/test/url","id":"111111"},{"url":"/test/test/url","id":"111111"}, {"url":"/test/test/url","id":"1111"}] 
.... html ... 

我在html中有一些json類型的字符串。python正則表達式語法

如何讓雷克斯表達式提取圖案

「/測試/測試/ URL」 和 「1111」 在 「ID」 後:

由於提前,

+1

你從嘗試開始。 –

+0

@EricHotinger我嘗試了3個小時,並使用正則表達式生成器工具:( – joseph

+2

然後包括你的OP嘗試。 –

回答

1

你應該對這個@ Haidro的答案去,但如果你想使用正則表達式,或者看你怎麼會,那麼這裏的一些示例代碼:

regex = re.compile(r'\"url\":("[^"]+"),\"id\":("[^"]+")') 
match = re.finditer(regex, yourString) 

for m in match: 
    print m.group(1), m.group(2) 

[^"]是一個字符類用於接受所有非"字符。

編輯:
我愛我怎麼推薦對方的回答,但解釋如何如果確實想知道,做到這一點,但不知何故,我還是得到downvoted。

+1

我打算放幾乎完全相同我認爲有些人在任何時候一起看到這兩個詞時,都會盲目地想到「不使用正則表達式的html」謾罵......(PS我不認爲你需要在正則表達式中脫離引號) – beroe

+0

@海德羅有人喜歡downvoting,我猜... –

+0

@SteveP。呃,下注只是說實話。這是他們失去的一個聲譽:P – TerryA

4

不要使用正則表達式在這裏,使用json模塊。這是它的設計目的。

import json 
mylist = json.loads(html) 
for subdict in mylist: 
    print subdict['url'] 
    print subdict['id'] 
+1

它是json類型的字符串,但它是在html中。所以,我不能解碼到json直接。 – joseph

+0

@joseph你是什麼意思它是在html?你在字符串上使用'json.loads' – TerryA

+0

它不乾淨json字符串。它是在html文件中當我使用json.loads時,python無法解碼它 – joseph