2011-11-01 3 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

같은 결과 @ 팀, 내가 시도 그룹 (1)과; : –

+0

그리고 무엇이 문제입니까? –

+0

예외로 질문 업데이트 됨 –

1

또는, 당신은 당신이 원하는 URL의 일부를 얻을 수 split와 함께 lastIndexOf을 사용할 수 있습니다 : 당신이 필요로하는 아, 그리고 물론

실제로 검색을 할 수 있습니다. 코드는 당신이 시도 할 수이

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"));