0Pricing
DevOps Bootcamp · บทเรียน

บทนำสู่นิพจน์ปกติ (Regex)

ทำความเข้าใจไวยากรณ์และแนวคิดหลักของนิพจน์ปกติ เพื่อจับคู่รูปแบบข้อความได้อย่างทรงพลัง

บทนำสู่นิพจน์ปกติ (Regex) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

นิพจน์ทั่วไปคืออะไร

นิพจน์ทั่วไป หรือที่มักเรียกสั้น ๆ ว่า เรกซ์ คือรูปแบบทรงพลังที่ใช้ค้นหาและจัดการข้อความ

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

นิพจน์ทั่วไปถูกใช้อย่างแพร่หลายในการเขียนโปรแกรม การเขียนสคริปต์ และเครื่องมือบรรทัดคำสั่งใน Linux เช่น grep, sed และ awk

การจับคู่อักขระตามตัวอักษร

เรกซ์ที่ง่ายที่สุดจะจับคู่อักขระตามตัวอักษรแบบตรงกันทุกประการ หากคุณค้นหา 'apple' ก็จะพบข้อความ 'apple' เท่านั้น

มาใช้คำสั่ง grep (การพิมพ์นิพจน์ทั่วไปแบบครอบคลุม) เพื่อสาธิตการจับคู่พื้นฐานนี้กัน

echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "pineapple" >> fruits.txt
grep "apple" fruits.txt
rm fruits.txt

จุด: อักขระใดก็ได้หนึ่งตัว

จุด (.) เป็นอักขระพิเศษที่จับคู่กับอักขระใดก็ได้หนึ่งตัว ยกเว้นการขึ้นบรรทัดใหม่

จุดทำหน้าที่เหมือนอักขระแทนที่สำหรับหนึ่งตำแหน่ง ตัวอย่างเช่น c.t จะจับคู่กับ "cat", "cot" หรือ "cut" ได้

echo "cat" > words.txt
echo "cot" >> words.txt
echo "cut" >> words.txt
echo "coat" >> words.txt
grep "c.t" words.txt
rm words.txt

เครื่องหมายดอกจัน: ศูนย์ครั้งขึ้นไป (*)

เครื่องหมายดอกจัน (*) เป็นตัวระบุจำนวนที่จับคู่กับการปรากฏของอักขระหรือกลุ่มที่อยู่ก่อนหน้าทันที ตั้งแต่ศูนย์ครั้งขึ้นไป

ตัวอย่างเช่น colou*r จะจับคู่กับ "color" (ไม่มี 'u') และ "colour" (มี 'u' หนึ่งตัว) ได้

echo "color" > spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
echo "cold" >> spellings.txt
grep "colou*r" spellings.txt
rm spellings.txt

เครื่องหมายบวก: หนึ่งครั้งขึ้นไป (+)

เครื่องหมายบวก (+) จับคู่กับการปรากฏของอักขระหรือกลุ่มก่อนหน้าหนึ่งครั้งขึ้นไป

ต่างจาก * ตรงที่องค์ประกอบนั้นต้องปรากฏอย่างน้อยหนึ่งครั้ง ดังนั้น go+gle จะจับคู่กับ "google" และ "gooogle" ได้ แต่ไม่จับคู่กับ "ggle"

หมายเหตุ: หากต้องการให้ +, ? และ {} ทำงานโดยตรงกับ grep โดยทั่วไปคุณต้องใช้ตัวเลือก -E สำหรับนิพจน์ทั่วไปแบบขยาย

echo "google" > search.txt
echo "goooogle" >> search.txt
echo "ggle" >> search.txt
grep -E "go+gle" search.txt
rm search.txt

เครื่องหมายคำถาม: ศูนย์ครั้งหรือหนึ่งครั้ง (?)

เครื่องหมายคำถาม (?) จับคู่กับการปรากฏของอักขระหรือกลุ่มก่อนหน้าศูนย์ครั้งหรือหนึ่งครั้ง

เครื่องหมายนี้ทำให้อักขระเป็นตัวเลือกได้ ตัวอย่างเช่น colou?r จะจับคู่กับ "color" (ไม่มี 'u') และ "colour" (มี 'u' หนึ่งตัว) ได้

echo "color" >> spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
grep -E "colou?r" spellings.txt
rm spellings.txt

จุดยึด: จุดเริ่มต้น (^) และจุดสิ้นสุด ($)

จุดยึดไม่ได้จับคู่อักขระ แต่จับคู่กับตำแหน่งเฉพาะในข้อความ

  • ^ จับคู่กับจุดเริ่มต้นของบรรทัด
  • $ จับคู่กับจุดสิ้นสุดของบรรทัด

ตัวอย่าง: ^apple จะจับคู่กับ "apple" เฉพาะเมื่ออยู่ต้นบรรทัด ส่วน apple$ จะจับคู่กับ "apple" เฉพาะเมื่ออยู่ท้ายบรรทัด

echo "apple pie" > menu.txt
echo "fresh apple" >> menu.txt
echo "apple" >> menu.txt
grep -E "^apple" menu.txt
grep -E "apple$" menu.txt
rm menu.txt

คลาสอักขระ: วงเล็บเหลี่ยม ([])

วงเล็บเหลี่ยม ([]) ใช้กำหนดคลาสอักขระ ซึ่งจับคู่กับอักขระใดก็ได้หนึ่งตัวภายในชุดนั้น

  • [aeiou] จับคู่กับสระใดก็ได้หนึ่งตัว
  • [0-9] จับคู่กับตัวเลขใดก็ได้หนึ่งตัว
  • [a-zA-Z] จับคู่กับตัวอักษรใดก็ได้หนึ่งตัว

คุณยังสามารถใช้ [^...] เพื่อปฏิเสธคลาสได้ เช่น [^aeiou] จะจับคู่กับอักขระใดก็ได้ที่ไม่ใช่สระ

echo "cat" > animals.txt
echo "bat" >> animals.txt
echo "rat" >> animals.txt
echo "cot" >> animals.txt
grep -E "[cb]at" animals.txt
grep -E "[^cbr]at" animals.txt
rm animals.txt

ตัวระบุจำนวน: วงเล็บปีกกา ({})

วงเล็บปีกกา ({}) เป็นตัวระบุจำนวนที่กำหนดจำนวนการทำซ้ำที่แน่นอนของอักขระหรือกลุ่มก่อนหน้า

  • a{3} จับคู่กับ "aaa"
  • a{2,} จับคู่กับ "aa", "aaa", "aaaa" และอื่น ๆ (อย่างน้อย 2 ครั้ง)
  • a{2,4} จับคู่กับ "aa", "aaa", "aaaa" (ระหว่าง 2 ถึง 4 ครั้ง)

อย่าลืมใช้ grep -E กับตัวระบุจำนวนเหล่านี้

echo "helllo" > greetings.txt
echo "hello" >> greetings.txt
echo "helo" >> greetings.txt
grep -E "hel{2,3}o" greetings.txt
rm greetings.txt

ตรวจสอบนิพจน์ทั่วไปอย่างรวดเร็ว

พิจารณาข้อความเหล่านี้:

  • banana
  • banaana
  • banaanana
  • bna

นิพจน์ทั่วไปใดจะจับคู่ได้เฉพาะ "banana" และ "banaana"

ทบทวนพื้นฐานนิพจน์ทั่วไป

คุณได้เรียนรู้พื้นฐานของนิพจน์ทั่วไปแล้ว

  • นิพจน์ทั่วไปใช้รูปแบบเพื่อค้นหาและจัดการข้อความ
  • อักขระตามตัวอักษรจะจับคู่กับตัวมันเอง
  • อักขระพิเศษอย่าง ., *, +, ?, ^, $, [] และ {} ช่วยให้จับคู่รูปแบบได้อย่างทรงพลัง

ต่อไปคุณจะนำรูปแบบเหล่านี้ไปใช้ค้นหาข้อความขั้นสูงด้วยคำสั่ง grep และตัวเลือกต่าง ๆ ของคำสั่ง

คำถามที่พบบ่อย

บทเรียน “บทนำสู่นิพจน์ปกติ (Regex)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “บทนำสู่นิพจน์ปกติ (Regex)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “บทนำสู่นิพจน์ปกติ (Regex)”

ทำความเข้าใจไวยากรณ์และแนวคิดหลักของนิพจน์ปกติ เพื่อจับคู่รูปแบบข้อความได้อย่างทรงพลัง คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “บทนำสู่นิพจน์ปกติ (Regex)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่นิพจน์ปกติ (Regex)
  2. Grep ขั้นสูงด้วย Regex
  3. การรวม Regex เข้ากับ sed/awk
  4. กลุ่มจับคู่ การอ้างอิงย้อนกลับ และการแทนที่
← กลับไปที่ DevOps Bootcamp