0Pricing
Python Academy · บทเรียน

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

เรียนรู้เมตาอักขระ คลาสอักขระ ตัวระบุจำนวน และจุดยึด

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

บทนำ

นิพจน์ปกติคือรูปแบบสำหรับจับคู่ข้อความ โมดูล re ของ Python มีเครื่องมือสำหรับใช้งานนิพจน์เหล่านี้

Regex คืออะไร

Regex คือลำดับอักขระที่สร้างรูปแบบการค้นหา r'\d+' ใช้จับคู่ตัวเลขตั้งแต่หนึ่งหลักขึ้นไป
import re
print(re.findall(r'\d+', 'abc 123 def 456'))

อักขระตามตัวอักษร

อักขระส่วนใหญ่จะจับคู่กับตัวเอง เช่น r'cat' จับคู่กับสตริง 'cat' ตามตัวอักษร
import re
print(re.search(r'cat', 'the cat sat'))

จุด (.) อักขระแทนที่

จุด . จับคู่กับอักขระใดก็ได้ ยกเว้นอักขระขึ้นบรรทัดใหม่ r'c.t' จับคู่กับ 'cat', 'cut' และ 'c9t'
import re
print(re.findall(r'c.t', 'cat cut c9t caaat'))

คลาสอักขระ

[aeiou] จับคู่กับสระใดก็ได้ [a-z] จับคู่กับอักษรภาษาอังกฤษตัวพิมพ์เล็กใดก็ได้ [^abc] จับคู่กับทุกอย่างที่ไม่ใช่ NOT ใน {a,b,c}
import re
print(re.findall(r'[aeiou]', 'hello world'))

ตัวระบุจำนวน

* ศูนย์ครั้งขึ้นไป + หนึ่งครั้งขึ้นไป ? ศูนย์ครั้งหรือหนึ่งครั้ง {3} ตรงกันพอดี 3 ครั้ง {2,4} ตั้งแต่ 2 ถึง 4 ครั้ง
import re
print(re.findall(r'\d{2,4}', '1 12 123 1234 12345'))

จุดยึด

^ จับคู่กับจุดเริ่มต้นของสตริง $ จับคู่กับจุดสิ้นสุด \b จับคู่กับขอบเขตของคำ
import re
print(re.findall(r'^\w+', 'hello world'))
print(re.findall(r'\b\w{4}\b', 'cat cats come home'))

คลาสแบบย่อ

\d = ตัวเลข [0-9] \w = อักขระคำ [a-zA-Z0-9_] \s = ช่องว่าง รุ่นตัวพิมพ์ใหญ่คือการปฏิเสธความหมาย: \D, \W, \S
import re
print(re.findall(r'\w+', 'hello, world!'))

การสลับทางเลือก |

r'cat|dog' จับคู่กับ 'cat' หรือ 'dog' อย่างใดอย่างหนึ่ง วงเล็บใช้จัดกลุ่ม: r'(cat|dog)s' จับคู่กับ 'cats' หรือ 'dogs'
import re
print(re.findall(r'cat|dog', 'I have a cat and a dog'))

แบบละโมบกับแบบขี้เกียจ

.* เป็นแบบละโมบ โดยจับคู่ให้ได้มากที่สุด .*? เป็นแบบขี้เกียจ โดยจับคู่ให้น้อยที่สุด
import re
html = '<b>bold</b> and <i>italic</i>'
print(re.findall(r'<.*>', html))   # greedy
print(re.findall(r'<.*?>', html))  # lazy

สตริงดิบสำหรับ Regex

ใช้ r'...' สำหรับรูปแบบ Regex เสมอ เพื่อหลีกเลี่ยงการทำเอสเคปแบ็กสแลชซ้ำสองครั้ง: ใช้ r'\d' แทน '\\d'
import re
# Without r: '\\d+' is needed
# With r:    '\d+' is sufficient
print(re.findall(r'\d+', 'abc123'))

ตรวจสอบอย่างรวดเร็ว

จุดยึด \b จับคู่กับอะไรในนิพจน์ปกติ

สรุป

พื้นฐาน Regex: . (อักขระใดก็ได้), [] (คลาส), * + ? {} (ตัวระบุจำนวน), ^ $ \b (จุดยึด), \d \w \s (รูปแบบย่อ), | (การสลับทางเลือก), แบบละโมบกับแบบขี้เกียจ ใช้สตริง r'' เสมอ

เรียนรู้ต่อไป

ทำได้ดีมาก บทเรียนถัดไปรอคุณอยู่

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

บทเรียน “พื้นฐานนิพจน์ทั่วไป” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานนิพจน์ทั่วไป”

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

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

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

บทเรียน “พื้นฐานนิพจน์ทั่วไป” ใช้เวลานานแค่ไหน

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

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

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

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

  1. พื้นฐานนิพจน์ทั่วไป
  2. การใช้ re.match, re.search, re.findall
  3. กลุ่มและการจับค่าด้วยชื่อ
  4. re.sub แฟล็ก และรูปแบบที่คอมไพล์แล้ว
← กลับไปที่ Python Academy