2012-11-02 156 views
-5

我有一個HTML響應正文/字符串。該HTML內容的部分是這些字符串 -需要正則表達式html幫助

<h2><a href="javascript:;" class="user-name-class">MY_USER_NAME<b></b></a></h2> 

["media_detail","init",[false,"",null,true,1,4,"99999_XXXXX_99999",11836530,"00076f7474727febc37a8825d373a5be","\/p\/LdvJWSF-6b\/","\/accounts\/login\/"]], 

從這些我需要提取MY_USER_NAME99999_XXXXX_99999

我希望從正則表達式的搖滾明星的幫助。這是紅寶石1.9.3。謝謝。

更新:我們使用正則表達式,因爲這不是實時完成的,所以性能不是問題。

+4

我不會用正則表達式這一點。使用HTML/XML解析器。 –

+1

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Gus

+1

這不是一個性能問題。正則表達式只是**無法正確解析HTML。甚至沒有提到可由DOM解析器處理的無效HTML。 –

回答

3

第一個是HTML,所以你應該用HTML解析它,另一個是JSON,所以你可以使用一些JSON庫。不要使用正則表達式。 It's evil

0

如果你不想使用HTML/JSON庫,你可以得到的第一個具有:

str.gsub!(/<.*?>/, '') 

爲正則表達式,你將不得不告訴我們更多關於格式的第二個串......什麼是一致的,什麼不是,等

0

您可以使用

s.split(/"user-name-class">/)[1].split(/</)[0] 

(見this demo

s.split(/\["media_detail"/)[1].split(/\[/)[1].split(/"?,"?/)[6] 

(見this demo

+0

所以我有這個大的HTML正文/字符串,我該如何將這個正則表達式應用到整個html內容? – kapso

+0

@ user310525 - 只需將整個html內容設置爲字符串's'即可。你有沒有檢查演示鏈接? –

+0

我已經更新了這個問題,如果有幫助的話。謝謝。 – kapso