2011-11-01 108 views
0

嗨我想從URL中獲取一個字符串。Java:從URL獲得整數值

我正在使用正則表達式。

String url = "http://localhost/htc/android/htc-incredible/259164-gpid"; 
Pattern regex = Pattern.compile("^.+/(\\d+)-gpid$"); 
Matcher tagmatch = regex.matcher(url); 
System.out.println(tagmatch.group(0)); 

錯誤:

Exception in thread "main" java.lang.IllegalStateException: No match found 

什麼,我做錯了:

回答

3

您需要使用group(1)(第一個捕獲組的內容),而不是group(0)(整場比賽)。

哦,當然,你需要做的其實搜索:

tagmatch.find(); 
System.out.println(tagmatch.group(1)); 
+0

同樣的結果@Tim,我已經試過組(1)爲好; :( –

+0

有什麼問題? –

+0

更新了異常問題。 –

1

或者,也可以結合使用lastIndexOfsplit得到你想要的網址的一部分。代碼看起來像這樣

url.substring(url.lastIndexOf('/')+1).split("-")[0] //prints 259164 
1

你可以試試這個:

String url = "http://localhost/htc/android/htc-incredible/259164-gpid"; 
url.substring(url.indexOf('/',url.indexOf("htc-incredible/"))+1,url.indexOf("-gpid"));