2010-06-10 3 views
1

URL을 처리하는 고성능 응용 프로그램이 있습니다. 모든 URL에 대해 사전 정의 된 풀에서 적절한 설정을 검색해야합니다. 모든 설정 개체는 이러한 설정을 사용해야하는 URL 패턴을 나타내는 URL 패턴과 연결됩니다. 일치하는 규칙은 다음과 같습니다.URL을 필터링/일치시키는 기본 공개 소스 Java 패키지는 무엇입니까?

  • "google.com"일치 패턴은 google 도메인을 가리키는 모든 URL (즉, maps.google.com 및 www.google.com/match가 일치)과 일치해야합니다.
  • "* .google.com"은 google.com의 하위 도메인을 가리키는 모든 URL과 일치해야합니다 (따라서 maps.google.com은 일치하지만 google.com 및 www.google.com은 일치하지 않습니다).
  • "maps.google.com"은이 특정 하위 도메인을 가리키는 모든 URL과 일치해야합니다.
  • 위의 규칙 외에도 모든 일치 규칙에는 경로가 포함될 수 있습니다. 즉, URL의 경로 부분은 일치 규칙 경로로 시작해야합니다. 따라서 : "* .google.com/maps"는 "maps.google.com/maps"와 일치하지만 "maps.google.com/advanced"와는 일치하지 않습니다.

    위에서 볼 수 있듯이 위의 규칙은 중복되어 있습니다. 동일한 URL과 일치하는 두 개의 규칙이있는 경우 가장 구체적인 것이 적용되어야합니다. 위의 목록은 가장 구체적인 것으로부터 가장 구체적인 것으로 순위가 매겨집니다.

    이것은 내 자신을 프로그래밍하기보다는 준비된 라이브러리를 사용하고자하는 것과 같은 표준 문제인 것처럼 보입니다. Google은 두 가지 옵션을 제시하지만 그 중에서 선택할 명확한 방법이 없습니다. 이 작업을 위해 훌륭한 라이브러리로 무엇을 권하고 싶습니까?

    감사합니다, 보아스

    +0

    이전 질문을보십시오. http://stackoverflow.com/questions/2230676/how-to-check-for-a-valid-url-in-java –

    답변

    1

    나는 당신이이 문제를 해결하기 위해 특정 라이브러리를 필요가 있다고 생각하지 않는다; 표준 Java API는 너무 많은 작업없이 코드를 작성하는 데 필요한 모든 것을 갖추고 있습니다.

    java.util.regex.Pattern을 살펴보고 각 규칙과 일치하는 정규 표현식을 찾아보십시오. java.net.URL을 사용하여 URL에서 다른 필드를 파싱 할 수도 있습니다.

    이미 여러 패턴이 URL과 일치하는 시나리오를 처리하는 우선 순위 체계가 있다고 말했으므로이 퍼즐의 마지막 부분이어야합니다.

    꽤 간단한 작업처럼 보입니다.

    관련 문제