เพื่อนร่วมงานกำลังมองหาที่จะเรียนรู้ regex ดังนั้นผมจึงตัดสินใจที่จะนำมันขึ้นที่นี่. นี้เป็นครั้งแรกในชุดของบทความ regex ที่เกี่ยวข้อง. ในส่วนที่จะทำตาม, เรากำลังจะได้ใช้ของเรา นิพจน์ปกติ ในการเรียนรู้หัวข้ออื่น ๆ ที่เกี่ยวข้องกับอินเทอร์เน็ตในขณะ simltaneously ขยายความรู้ regex.
regex เริ่มต้นอย่างรวดเร็ว
- A แถบแนวตั้ง |, บางครั้งเรียกว่าท่อ, เป็น “หรือ” ผู้ประกอบการในการแสดงออกปกติ. มันแสดงให้เห็นว่ารูปแบบไปทางซ้ายหรือไปทางขวาเป็นที่ยอมรับ. บนแป้นพิมพ์, คีย์นี้โดยทั่วไปจะมี “เมืองหลวง”, หรือ “รุ่นเปลี่ยน”, ของคีย์เครื่องหมาย.
- วงเล็บคือวงเล็บรอบ () ที่เลือกส่วนหนึ่งของการแสดงออกปกติ. พวกเขาสามารถใช้งานเช่นเดียวกับในวิชาคณิตศาสตร์เมื่อ คำสั่งของการดำเนินงาน จะมีการปรับ. The “การเลือก” สามารถอ้างอิงอื่น ๆ ถึงแม้ว่าเราจะครอบคลุมในภายหลังว่า.
- A จุด . เป็นตัวละครพิเศษที่ตรงกับ ใด ตัวละครอื่นที่ไม่ใช่ “ขึ้นบรรทัดใหม่” ตัวอักษร.
- ทับขวา \ บางครั้งเรียกว่า หลบหนี ตัวละคร. มีตัวละครหลาย, เช่นวงเล็บและแถบแนวตั้งดังกล่าวข้างต้น, ที่มีความหมายพิเศษ. เครื่องหมายที่ใช้ในการเอาออก (หลบหนี) ความหมายที่พิเศษเหล่านั้น. เช่น, เพื่อระบุหยุดเต็มเกิดขึ้นจริง, คุณต้องการที่จะหลบหนีจุดตัวอักษรพิเศษ: \.
- ดาว * เป็นผู้ดำเนินการซึ่งแสดงให้เห็นว่าตัวละครก่อนหน้านี้สามารถทำซ้ำศูนย์หรือมากกว่าครั้ง. นี้มักจะรวมกับจุดที่จะผลิต “ตัวแทน” ลวดลาย, ซึ่งตรงกับสายยาว ๆ: .*
การใช้แถบแนวตั้งและลักษณะการหลบหนี
ที่นี่เรามีจำนวนของที่อยู่เว็บตัวอย่างเช่น:
ที่ http://dogma.swiftspirit.co.za/ http://swiftspirit.co.za/ http://google.com/
ถ้าต้องการรูปแบบที่ตรงกับพวกเขาทั้งหมด, ฉันสามารถใช้แถบแนวตั้ง (กฎ 1 ข้างบน) จะแยกพวกเขา. ฉันแล้วยังจำเป็นต้องใช้ตัวละครที่หลบหนี (กฎ 4 ข้างบน) เพื่อหยุดเต็ม:
ที่ http://เชื่อ .swiftspirit .co .za /|ที่ http://swiftspirit .co .za|ที่ http://google .com /
ข้างต้นจะตรงกับทุก URI ในตัวอย่างของฉัน แต่มันไม่ได้มีประสิทธิภาพโดยเฉพาะหรือที่สง่างาม.
การใช้วงเล็บ
เช่นเดียวกับที่สามารถทำได้ด้วยดังต่อไปนี้, สั้น, regex, ใช้วงเล็บจากการปกครองของ 2 ข้างบน:
ที่ http://((|เชื่อ )swiftspirit .co .za|google .com)/
แจ้งให้ทราบว่าผมได้วางเพียงแค่รายการที่พบบ่อย, เช่น “ที่ http://” และ “/”, นอกเลือก.
ถ้าคุณต้องการเพื่อให้ตรงกับข้อความที่อาจจะมีอะไร?
บางทีคุณอาจมีมากกว่าที่คุณยังต้องการเพื่อให้ตรงกับ? เช่น, ถ้าฉันใส่ http://swiftspirit.co.za/downloads/ และฉันยังคงต้องการรูปแบบเพื่อให้ตรงกับที่หรือ url อื่น ๆ ภายใต้เว็บไซต์ของฉัน. หรือบางทีมันโอเคสำหรับ http://สิ่งใด.google.com/สิ่งใด ยังตรงกับ. เราสามารถใช้จุดและดาวตัวอักษรพิเศษจากกฎ 3 และ 5 จากข้างบน:
ที่ http://((|เชื่อ )swiftspirit .co .za|(|.*\.)google .com)/.*
เพียงแค่เพิ่มที่ตัวอักษรใด ๆ จะปรากฏเป็นศูนย์หรือมากกว่าครั้งช่วยให้การแข่งขันมากขึ้นโดยไม่ต้องเพิ่มมากเกินไปที่จะซับซ้อน regex ของ:
(|.*\.)
ดังกล่าวข้างต้นมาจากด้านหน้าของรูปแบบ google.com. แถบแนวตั้งแสดงให้เห็นสองตัวเลือกที่นี่: ไม่ว่าจะว่างเปล่า (ดังนั้นเราจึงจบลงด้วยเพียง google.com), หรือ .*\. (ดังนั้นเราจึงมี สิ่งใด ตามด้วยตัวอักษรและจุดที่จะตามแล้วโดย google.com).
ฝึกทำให้สมบูรณ์
แล้วเราจะเห็นได้จากตัวอย่างสุดท้ายที่แสดงออกปกติได้อย่างรวดเร็วสามารถกลายเป็นความซับซ้อน. เหมือนภาษาใด ๆ, เป็นได้อย่างง่ายดายสามารถที่จะอ่านการแสดงออกปกติใช้เวลาฝึก. หากคุณมีความต้องการที่เกี่ยวข้องกับการทำงานกับการแสดงออกปกติ, คุณอยู่ในการรักษา.
ส่วนหนึ่ง 2 ควรจะเป็นเพราะในไม่กี่วัน. ฉันจะทำบางอย่างทางอ้อมมาก “ทำงาน”, แสดงให้เห็นถึงวิธีการล้างแคช DNS ในความหลากหลายของระบบ.