2012-02-13 102 views
2

我有以下字符串,我想從href標記中派生出數字()。我如何得出這個數字。如何從字符串中獲取特定的數據?

Hello this is testing string <a href=\"/testing/104321\">Ap</a><img src=\"Image Url" width=\"222\" height=\"149\"/><br/><br/>test\u00e4n p\u00e4\u00e4ll\u00e4 test, test\u00e4, test? 

我想最終的輸出是這樣的。

String[] strExample= {"testing", "104321","test\u00e4n p\u00e4\u00e4ll\u00e4 test, test\u00e4, test?"}; 

任何幫助表示讚賞。

回答

2

你可以嘗試一個簡單的模式匹配與正則表達式:

String THE_PATTERN = "<a\\s+href\\s*=\\s*\"/([a-zA-Z]+)/([0-9]+)"; 
Matcher m = Pattern.compile(THE_PATTERN).matcher(THE_INPUT_STRING); 
String[] results = new String[2]; 
if (m.find()) { 
    results[0] = m.group(1); 
    results[1] = m.group(2); 
} 

還沒有嘗試過的,所以有可能是小/容易修正錯誤。

+0

好的,但你改變了你的問題,因爲我回答了(你用第三個字符串來匹配)。只需調整正則表達式,將括號放在要匹配的第三部分的周圍,然後m.group(3)將返回它。查看'Pattern' javadoc獲得更多正則表達式信息和'Matcher' – 2012-02-13 08:57:42

+0

非常感謝。你能再次幫助我嗎?我也想在
標籤後面輸入字符串。我也改變了我的問題。請看看這個,給我解決方案。我永遠感謝你。 – 2012-02-13 09:00:28

+0

我從來沒有使用模式和匹配器,所以你能幫我解決我的問題嗎? – 2012-02-13 09:02:41

0

對於單一的情況下

String[] strExample = str.split("^.+?\\\"/|\\\\\">.+<br/>|/"); 

會工作。如果你想解析的字符串發生很大變化,它會中斷。如果有更多的模式需要考慮,可能還會有更多的例子。

相關問題