내가 자바 초보자 그리고 난 다음에 일치하는 정규식 알아 내기 위해 노력 해왔다 :http 및 https가 있거나없는 호스트를 일치시키는 정규식.
- 호스트 만이 아닌 IP를
- 호스트뿐만 아니라 HTTP 또는 HTTPS 태그로 수 있습니다 .
- 호스트는 다른 TLD를 가질 수 있습니다.
나는 [a-z0-9]+|([a-z0-9]+[-]+[a-z0-9]+))[.])+
을 시도했지만 예상하지 못했습니다. 누군가가 나를 도울 수 있다면 좋을 것입니다.
내가 자바 초보자 그리고 난 다음에 일치하는 정규식 알아 내기 위해 노력 해왔다 :http 및 https가 있거나없는 호스트를 일치시키는 정규식.
나는 [a-z0-9]+|([a-z0-9]+[-]+[a-z0-9]+))[.])+
을 시도했지만 예상하지 못했습니다. 누군가가 나를 도울 수 있다면 좋을 것입니다.
public static void main(String[] args) {
Pattern pattern = Pattern.compile ("(?:https?://)?(?:[-a-zA-Z0-9_]+\\.)*[-a-zA-Z0-9_]*[-a-zA-Z_][-a-zA-Z0-9_]*(?:\\.[-a-zA-Z0-9_]+)*");
System.out.println(pattern.matcher("127.0.0.1").matches()); // false
System.out.println(pattern.matcher("1.0.0.127.in-addr.arpa").matches()); // true
System.out.println(pattern.matcher("localhost").matches()); // true
System.out.println(pattern.matcher("1-2-3-4").matches()); // true
System.out.println(pattern.matcher("http://1.0.0.127").matches()); // false
System.out.println(pattern.matcher("https://1.0.0.127").matches()); // false
System.out.println(pattern.matcher("ftp://1.0.0.127.in-addr.arpa").matches()); // false
System.out.println(pattern.matcher("http://1.0.0.127.in-addr.arpa").matches()); // true
System.out.println(pattern.matcher("https://1.0.0.127.in-addr.arpa").matches()); // true
'-test.com'과 일치합니다. 원하지 않는 것 같습니다. –
고마워. .. 내가 기대하고 있던 완벽한 물건이었다. – user2144099
내 경우에는 밑줄이있는 호스트도 일치해야합니다. 밑줄도 허용하도록 slighly 수정할 수 있습니까? – user2144099
달성하려는 작업이 확실하지 않습니다. 호스트 부분을 원하지만 해결 된 것, 즉 IP 주소는 허용되지 않습니다. 왜 그걸 왜 원하니? 선택적 포트 번호는 무엇입니까? 그리고 가능한 로그인 정보는? 구문 분석 된 데이터에 심각한 문제가있는 경우 내 제안은 java.net.URL
(또는 URI
) 개체를 사용하고 있습니다.
정규 표현식으로 만 재생하려면 입력 텍스트에 따라 정규 표현식으로 충분하지 않기 때문에 요구 사항을 더 잘 지정하십시오.
Lorem ipsum.Dolor sit amen
이 ipsum.Dolor
유효한 호스트로 접수해야
http://
프로토콜 스펙이없고 IP 주소가 아니므로 요구 사항에 따라 일치해야합니다.
일치해야하는 것과 그렇지 말아야 할 것의 예와 함께 몇 가지 사양을 제공하십시오. –