แพ็คเกจ Java โอเพ่นซอร์สพื้นฐานสำหรับกรอง / จับคู่ URL คืออะไร

ฉันมีแอปพลิเคชันประสิทธิภาพสูงที่เกี่ยวข้องกับ URL สำหรับทุก URL จะต้องดึงการตั้งค่าที่เหมาะสมจากพูลที่กำหนดไว้ล่วงหน้า ออบเจ็กต์การตั้งค่าทั้งหมดเชื่อมโยงกับรูปแบบ URL ซึ่งระบุว่า URL ใดควรใช้การตั้งค่าเหล่านี้ กฎการจับคู่มีดังนี้:

  1. รูปแบบการจับคู่ "google.com" ควรตรงกับ URL ทั้งหมดที่ชี้ไปยังโดเมน Google (ดังนั้น map.google.com และ www.google.com/match จึงตรงกัน)
  2. "*.google.com" ควรตรงกับ URL ทั้งหมดที่ชี้ไปยังโดเมนย่อยของ google.com (ดังนั้น map.google.com จึงตรงกัน แต่ google.com และ www.google.com ไม่ตรงกัน)
  3. "maps.google.com" ควรตรงกับ URL ทั้งหมดที่ชี้ไปยังโดเมนย่อยนี้

นอกเหนือจากกฎข้างต้นแล้ว กฎการจับคู่ทุกกฎสามารถมีเส้นทางได้ ซึ่งหมายความว่าส่วนเส้นทางของ URL ควรเริ่มต้นด้วยเส้นทางกฎการจับคู่ ดังนั้น: "*.google.com/maps" จะตรงกับ "maps.google.com/maps" แต่ไม่ตรงกับ "maps.google.com/advanced"

ดังที่คุณเห็นกฎข้างต้นทับซ้อนกัน ในกรณีที่มีกฎสองข้อซึ่งตรงกับ URL เดียวกัน ควรใช้กฎที่เฉพาะเจาะจงที่สุด รายการด้านบนจัดอันดับจากเฉพาะเจาะจงน้อยที่สุดไปหาเฉพาะเจาะจงที่สุด

นี่ดูเหมือนจะเป็นปัญหามาตรฐานที่ฉันหวังว่าจะใช้ไลบรารี่สำเร็จรูปแทนที่จะเขียนโปรแกรมด้วยตัวเอง Google เปิดเผยตัวเลือกสองสามรายการ แต่ไม่มีวิธีที่ชัดเจนในการเลือกระหว่างตัวเลือกเหล่านั้น คุณจะแนะนำอะไรเป็นห้องสมุดที่ดีสำหรับงานนี้

ขอบคุณโบอาส


person Boaz    schedule 10.06.2010    source แหล่งที่มา
comment
ดูคำถามก่อนหน้านี้: stackoverflow.com/questions/2230676/   -  person Tendayi Mawushe    schedule 10.06.2010


คำตอบ (1)


ฉันไม่คิดว่าคุณต้องการห้องสมุดเฉพาะเพื่อแก้ไขปัญหานี้ Java API มาตรฐานมีทุกสิ่งที่คุณต้องการในการเขียนโค้ดโดยไม่ต้องทำงานมากเกินไป

ดูที่ java.util.regex.Pattern และหานิพจน์ทั่วไปที่คุณต้องการเพื่อให้ตรงกับแต่ละกฎของคุณ คุณอาจต้องการใช้ java.net.URL เพื่อแยกฟิลด์ที่แตกต่างจาก URL

คุณได้บอกไปแล้วว่าคุณมีแผนการจัดลำดับความสำคัญในการจัดการสถานการณ์ที่มีหลายรูปแบบตรงกับ URL ดังนั้นนั่นควรเป็นส่วนสุดท้ายสำหรับปริศนานี้

ดูเหมือนเป็นงานที่ค่อนข้างตรงไปตรงมา

person Joel Hoff    schedule 17.06.2010