2011-09-02 4 views
1

나는 URL 목록을 가지고 있고이 URL이 정규 표현식 여기 매치 두 개의 URL은

http://investor.somehost.com/*

* 그 이후로 아무 의미 또는 당신이 와일드 카드 말할 수

를 사용하여 그 URL의의를 일치시킬 ..

String href = url.getURL(); 

여기서 href는 모든 url을 포함합니다.

가정하자 firstentry는 URL 위에 그래서 (http://investor.somehost.com/*)

가 어떻게 firstentry와 HREF를 비교할 수 포함이 URL을 href가 시작되면 다음이 일을 할 경우 ...

+0

정규식에 관심이있는 경우 *'^ http : // investor \ .somehost \ .com' 또는 * http : // investor \ .somehost \ .com을 찾을 수 있습니다. (/.*)? '. – Peteris

답변

6

방금 ​​결정하려면 있도록 문자열이 특정 접두사로 시작하는지 여부는 startsWith(String prefix)을 사용하십시오.

예 :

String href = "http://google.com/mail"; 
if(href.startsWith("http://google.com")) { 
    //... Do stuff 
} 
+1

그래, 그럴 수있어.하지만 URL 다음에는 아무 의미 없어. 그래서 투자자 .omehost.com/ (뭐든지) 뒤에 어떤 것도 올 수있어. 그래서 startswith를 사용하고 있다면 * right를 확인할 것입니다. 하지만 이것과 일치 할 수있는 정규식이 필요합니다 * ... 그리고 URL 목록을 텍스트 파일의 URL과 비교해야합니다. – ferhan

+1

내 코드 예제를 참조하십시오. 접두사가 관련 URL을 포함하도록 변경 될 때마다 우리는 접두사에서 일치하는 문자열의 일부만을 포함시키고'*'부분을 버립니다. –

1
"^http://investor\\.somehost\\.com/" 

http://investor.somehost.com/로 시작하는 모든 문자열과 일치합니다. 만 유효한 URL을 원하는 경우 쿼리를 허용하려면 당신은 또한 조각을해야하는 경우

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?(\?([-._~:@!$&'()*+,;=/?a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?(#([-._~:@!$&'()*+,;=/?a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?" 

$와 이들의 종료,

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?(\?([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?" 

,

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?" 

를 사용할 수 있습니다 문자열의 후행 (URL이 아닌) 부분을 허용하지 않으려는 경우

0

문자열에 마리아가없는 URL의 도메인 부분을 추출하는 정규식을 제공하는 this post에 정규식이 있습니다. 그것의 자바 스크립트에 대한 '/'ig '후행 선도'/ '를 제거합니다. 그것을 사용하여 도메인을 추출하고 간단한 equals check와 비교하십시오.

관련 문제