2014-07-11 2 views
0

URL과 일치하는 정규 표현식을 작성하는 데 문제가 있습니다.자바 패턴 일치 문제

String input = "AAAhttp://[email protected]"  
String regex = "www.*.com" // To match www.gmail.com URL  
Pattern p = Pattern.compile(regex) 
Matcher m = p.matcher(input) 
while(m.find()){ 

}  

여기 URL (www.gmail.com)을 제거하고 싶습니다. 그러나 문자열 끝까지 일치하여 gmail.com으로 끝나는 전자 메일 주소와 일치시킵니다. 누군가 URL과 일치하는 정규 표현식을 얻을 수있게 도와 줄 수 있습니까?

+0

_Here 난 당신이 확실하거나 추출 할 www.gmail.com'_ URL을'제거 할 ???? –

답변

0

.* 욕심쟁이 일치합니다. 꺼리는 성냥에 * 후에 ?를 추가해야합니다.

"www\\..*?\\.com" 

귀하의 코드가 될 것이다, 와일드 카드의

String s = "AAAhttp://[email protected]"; 
    Pattern p = Pattern.compile("www\\..*?\\.com"); 
    Matcher m = p.matcher(s); 
    while (m.find()) { 
     System.out.println(m.group(0)); 
    } 

IDEONE

0
String regex = "www\\..*?\\.com" 

비 욕심 반복 '.'

www\.[^.]+\.com 

[^.]+는 점이 아닌 모든 문자를 의미 그대로

0

부정 된 문자 클래스는보다 빠른 .*?

사용이 정규식 일 때 점을 탈출. 자바에서

우리는 몇 가지 문자를 이스케이프해야합니다

// for instance 
Pattern regex = Pattern.compile("www\\.[^.]+\\.com"); 
// etc