2014-09-26 2 views
-1

파일에서 읽으려고하는 샘플 URL이 있습니다. (예 : https://www.sample.co)의 이스케이프 문자가 포함 된 URL을 구문 분석해야합니다. 에서 : 8080? 는 또는 http://www.sample.co.inURL의 이스케이프 문자를 포함하는 문자열을 파싱하는 정규식

슬프게도 정규식 나는

Regex = \w*\\:.* 

이 두 번째 예제를 구문 분석하는 데 도움이 작성했습니다. 어디서나 얻을 수있는 : '\'의 접미사가 있어야합니다. http : \ www.google.com과 같은 문자열이 있으면 통과하면 안됩니다. 로그 파일에서 텍스트를 추출하려고합니다.

+2

'URI' 클래스를 사용하지 않는 이유가 있습니까? – chrylis

+1

2 가지를 이해하지 못합니다. 1) 질문 2) upvote가 무엇입니까? – aelor

+0

유효한 URL을 만들거나 URL을 구문 분석하고 속성을 가져 오는 궁극적 인 동기는 무엇입니까? – SparkOn

답변

0

다양한 참조를 통해 내가 찾고 있던 정규식을 만들 수있었습니다.

String regex = "(query=.*?(?<!\\\\):)+.*?"; 
Pattern PATTERN = Pattern.compile(regex); 
String notvalue = "query=https\\://www.localhost.com\\:80"; 
String passvalue = "query=https://www.localhost.com\\:80"; 

감사합니다. :) 구문 분석해서는 안되는 잘못된 URL을 제공하면 true를 반환합니다.

1

당신은 이미 많은 좋은 답변 중 하나는 당신이 원하는 경우

당신은 다른 한편으로 URL을 확인

String lRegex = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"; 

이 같은 시도 할 수 있습니다 말했다가 다음 URL을 확인하려면 URL에서 프로퍼티를 얻으십시오.

URL aURL = new URL("https:/www.sample.co.in:8080"); 
System.out.println("protocol = " + aURL.getProtocol()); 
System.out.println("authority = " + aURL.getAuthority()); 
System.out.println("host = " + aURL.getHost()); 
System.out.println("port = " + aURL.getPort()); 
관련 문제