วิธีการค้นหาหมายเลขโทรศัพท์อย่างมีประสิทธิภาพใน 50,000 หน้า HTML

ในโลกดิจิทัลในปัจจุบัน ข้อมูลมักถูกจัดเก็บในรูปแบบข้อมูลที่ไม่เป็นระเบียบจำนวนมาก เช่น หน้า HTML ปัญหาที่พบบ่อยที่นักพัฒนาหลายคนต้องเผชิญคือการดึงข้อมูลเฉพาะจากคลังเอกสาร HTML ขนาดใหญ่ ความต้องการที่พบได้บ่อยคือการค้นหาหมายเลขโทรศัพท์ในหน้าเหล่านี้จำนวนมาก แต่จะมีกลยุทธ์ที่ดีที่สุดในการจัดการกับภารกิจที่ท้าทายเช่นนี้อย่างไร? ในโพสต์บล็อกนี้ เราจะสำรวจวิธีแก้ปัญหาที่มีประสิทธิภาพในการค้นหาหมายเลขโทรศัพท์ในไฟล์ HTML 50,000 ไฟล์ โดยใช้ regex และเครื่องมือบรรทัดคำสั่ง

ทำความเข้าใจกับความท้าทาย

เมื่อคุณมีหน้า HTML จำนวน 50,000 หน้า การค้นหาหมายเลขโทรศัพท์ด้วยมือถือเป็นเรื่องที่ไม่เหมาะสม หมายเลขโทรศัพท์อาจปรากฏในรูปแบบต่างๆ และหากไม่มีวิธีการที่อัตโนมัติ จะใช้เวลามากมายในการค้นหา ดังนั้นการใช้โปรแกรมและยูทิลิตี้บรรทัดคำสั่งจึงสามารถทำให้กระบวนการนี้สะดวกขึ้นอย่างมาก

ทำไมต้องใช้ Regex?

นิพจน์ปกติ (regex) เป็นเครื่องมือที่ทรงพลังสำหรับการค้นหารูปแบบในข้อความ สำหรับหมายเลขโทรศัพท์ regex ช่วยให้คุณกำหนดรูปแบบการค้นหาที่ยืดหยุ่นซึ่งสามารถตรงกับรูปแบบต่างๆ รวมถึง:

  • 123-456-7890
  • (123) 456-7890
  • 123.456.7890
  • +1 (123) 456-7890

ดังนั้น regex จึงกลายเป็นสิ่งจำเป็นสำหรับการสแกนไฟล์ HTML หลายๆ ไฟล์อย่างมีประสิทธิภาพ

วิธีแก้ปัญหา: การใช้ egrep กับ Regex

เครื่องมือบรรทัดคำสั่ง egrep มีความสำคัญสำหรับงานของเรา มันขยายความสามารถของ grep ทำให้เราสามารถใช้คุณสมบัติ regex แบบขยายได้ นี่คือคำสั่งง่ายๆ ที่จะช่วยเราค้นหาหมายเลขโทรศัพท์ในชุด HTML ของเรา:

egrep "(([0-9]{1,2}\.)?[0-9]{3}\.[0-9]{3}\.[0-9]{4})" . -R --include='*.html'

อธิบายคำสั่ง

  • egrep: เรียกใช้เครื่องมือ grep แบบขยายเพื่อตรวจสอบ regex
  • "(([0-9]{1,2}\.)?[0-9]{3}\.[0-9]{3}\.[0-9]{4})": นี่คือรูปแบบการค้นหาของ regex หลัก ซึ่งรวมถึงองค์ประกอบดังต่อไปนี้:
    • ([0-9]{1,2}\.)?: ตรงกับรหัสประเทศแบบเลือกได้ (หมายเลข 1 หรือ 2 หลักตามด้วยจุด)
    • [0-9]{3}\.[0-9]{3}\.[0-9]{4}: ตรงกับรูปแบบมาตรฐานของหมายเลขโทรศัพท์ที่จัดกลุ่มเป็นช่วงๆ โดยแยกด้วยจุด
  • .: บ่งบอกให้ค้นหาในไดเร็กทอรีปัจจุบัน
  • -R: ค้นหาแบบซ้ำในทุกไดเร็กทอรี
  • --include='*.html': กรองการค้นหาเพื่อรวมเฉพาะไฟล์ที่ลงท้ายด้วย .html

หมายเหตุสำคัญ

โปรดจำไว้ว่า regex ที่ให้ไว้นั้นได้รับการปรับแต่งสำหรับรูปแบบเฉพาะของหมายเลขโทรศัพท์ ขึ้นอยู่กับรายละเอียดของข้อมูลที่คุณกำลังจัดการ คุณอาจต้องปรับปรุงรูปแบบ regex เพื่อให้สามารถจับคู่กับรูปแบบที่แตกต่างกันได้อย่างถูกต้อง

สรุป

การดึงหมายเลขโทรศัพท์จาก 50,000 หน้า HTML อาจดูเหมือนงานที่ท้าทาย แต่การใช้ regex ร่วมกับเครื่องมือบรรทัดคำสั่งอย่าง egrep จะช่วยให้คุณสามารถทำให้กระบวนการค้นหาง่ายขึ้นอย่างมาก เทคนิคนี้ช่วยให้คุณรวบรวมข้อมูลที่ต้องการได้อย่างมีประสิทธิภาพ โดยไม่ต้องเปิดไฟล์แต่ละไฟล์ด้วยตนเอง ในครั้งต่อไปที่คุณต้องเผชิญกับชุดข้อมูลขนาดใหญ่ ให้พิจารณาการทำให้การค้นหาของคุณเป็นอัตโนมัติเพื่อเพิ่มประสิทธิภาพมากขึ้น!

โปรดแชร์ความคิดเห็นหรือถามคำถามใดๆ ที่คุณอาจมีเกี่ยวกับกระบวนการหรือรูปแบบ regex ในความคิดเห็นด้านล่าง!