2010-03-11 17 views
-1

我有這個標籤作爲輸入標籤:什麼是在Java或Android的HTML標記正則表達式模式?

<a href="controller.jsp?sid=127490C88DB5&R=35144" class="11-link-dkred-bold"><b>Mr. John Q. Anderson&nbsp;&nbsp;&nbsp;MBA 1977 E</a> 
在此

我想獲得的價值

約翰Q.先生安德森      MBA 1977年è

笏是彭定康值這在正則表達式?

+6

不要使用正則表達式來解析HTML。使用HTML解析器。此外,你想要完成什麼,需要提取這些信息? – 2010-03-11 17:11:21

+2

最好的正則表達式是'Pattern.compile(「簡單不要!」);';) – sfussenegger 2010-03-11 17:15:04

+1

該示例標記了String中的所有內容,或者匹配的字符串是否包含整個HTML頁面這個標籤?如果字符串包含整個頁面的HTML,那麼您嘗試在HTML中提取的數據是否不止一次出現?你有沒有試圖解決這個問題呢?如果是的話,你有什麼問題? – 2010-03-11 17:16:15

回答

8

這是一個非常糟糕的主意TM使用正則表達式,因爲它不是一個正規的語言來解析HTML。您最好通過整理(清理),然後使用XML解析器或使用XPath。

否則,與捕捉匹配模式是:

<.*?>\([^<]+\)</.*?> 

編輯

我只注意到你的HTML沒有很好地形成!您沒有關閉</b>標記。我給你的正則表達式只有當你用一個標籤包裝你的文本時纔會起作用。它不適用於你的例子。假設你將永遠有一個<b>...</b>標籤內,你可以這樣做:

<.*?><b>\([^<]+\)</b></.*?>