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

การใช้ re.match, re.search, re.findall

ประยุกต์ใช้ฟังก์ชันหลักของ re เพื่อค้นหารูปแบบในสตริง

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

บทนำ

โมดูล re มีฟังก์ชันหลายรายการสำหรับนำรูปแบบไปใช้กับสตริง

re.match() — จุดเริ่มต้นของสตริง

re.match(pattern, string) จับคู่เฉพาะที่จุด BEGINNING ของสตริง ส่งคืนอ็อบเจ็กต์การจับคู่หรือ None
import re
print(re.match(r'\d+', '123abc'))  # match
print(re.match(r'\d+', 'abc123'))  # None

re.search() — ทุกตำแหน่ง

re.search(pattern, string) ค้นหาการจับคู่ FIRST ที่พบในตำแหน่งใดก็ได้ของสตริง ส่งคืน Match หรือ None
import re
m = re.search(r'\d+', 'abc 123 def')
if m: print(m.group())

re.findall() — การจับคู่ทั้งหมด

re.findall(pattern, string) ส่งคืนรายการสตริงที่จับคู่ได้ทั้งหมดโดยไม่มีส่วนที่ทับซ้อนกัน
import re
print(re.findall(r'\d+', 'one 1 two 22 three 333'))

re.finditer() — ตัววนซ้ำ

re.finditer() ทำงานคล้าย findall() แต่ส่งคืนตัววนซ้ำของอ็อบเจ็กต์ Match จึงใช้หน่วยความจำอย่างมีประสิทธิภาพกับสตริงขนาดใหญ่
import re
for m in re.finditer(r'\d+', 'x1 y22 z333'):
    print(m.group(), m.start(), m.end())

เมธอดของอ็อบเจ็กต์การจับคู่

m.group() ส่งคืนสตริงที่จับคู่ได้ m.start() และ m.end() ส่งคืนตำแหน่ง m.span() ส่งคืน (start, end)
import re
m = re.search(r'(\w+)@(\w+)', 'send to user@example')
if m:
    print(m.group(), m.group(1), m.group(2))

re.fullmatch()

re.fullmatch(pattern, string) กำหนดให้รูปแบบต้องจับคู่กับสตริง ENTIRE
import re
print(re.fullmatch(r'\d+', '123'))    # match
print(re.fullmatch(r'\d+', '123abc'))  # None

re.split()

re.split(r'\s+', string) แยกสตริงตามรูปแบบ r'[,;\s]+' แยกตามจุลภาค อัฒภาค และช่องว่าง
import re
print(re.split(r'[,;\s]+', 'one,two; three four'))

re.sub() สำหรับการแทนที่

re.sub(pattern, repl, string) แทนที่ส่วนที่จับคู่ได้ โดย repl อาจเป็นสตริงหรือฟังก์ชัน
import re
print(re.sub(r'\d+', 'NUM', 'I have 3 cats and 12 dogs'))

รูปแบบที่คอมไพล์แล้ว

pattern = re.compile(r'\d+') คอมไพล์รูปแบบเพียงครั้งเดียว จากนั้นใช้ pattern.findall(), .search() และอื่น ๆ เพื่อให้ทำงานเร็วขึ้นเมื่อนำกลับมาใช้ซ้ำ
import re
digits = re.compile(r'\d+')
print(digits.findall('abc 123 def 456'))

แฟล็ก

re.IGNORECASE (re.I), re.MULTILINE (re.M) และ re.DOTALL (re.S) จะปรับเปลี่ยนพฤติกรรมการจับคู่
import re
print(re.findall(r'hello', 'HELLO World', re.IGNORECASE))

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

re.match() กับ re.search() แตกต่างกันอย่างไร

สรุป

re.match (จับคู่เฉพาะจุดเริ่มต้น), re.search (การจับคู่แรกในตำแหน่งใดก็ได้), re.findall (การจับคู่ทั้งหมดในรูปแบบรายการ), re.finditer (การจับคู่ทั้งหมดในรูปแบบอ็อบเจ็กต์ Match), re.sub (แทนที่), re.compile (นำรูปแบบกลับมาใช้ซ้ำ)

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

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

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

บทเรียน “การใช้ re.match, re.search, re.findall” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การใช้ re.match, re.search, re.findall”

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

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

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

บทเรียน “การใช้ re.match, re.search, re.findall” ใช้เวลานานแค่ไหน

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

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

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

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

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