0Pricing
Learn AI with Python · บทเรียน

รูปแบบนิพจน์ประจำและคลาสอักขระ

\d, \w, \s, ., ^, $, +, *, ?, {n,m}, คลาสอักขระ [a-z] และการปฏิเสธ [^...]

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

เหตุใดนิพจน์ทั่วไปจึงสำคัญต่อปัญญาประดิษฐ์ด้านข้อความ

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

หลักสูตรนี้สอนรูปแบบต่าง ๆ โมดูล re กลุ่ม และกระบวนการประมวลผลทำความสะอาดข้อความจริง

อักขระตรงตัว

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

cat ตรงกับ "cat" ใน "the cat sat" แต่ไม่ตรงกับ "Cat"

import re

print(re.findall("cat", "the cat sat on a cat mat"))
# ["cat", "cat"]

เมตาอักขระจุด

จุด . ตรงกับอักขระเดี่ยวใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่ จุดนี้ทำหน้าที่เป็นอักขระแทน

c.t ตรงกับ "cat", "cot", "c9t" หรือข้อความใด ๆ ที่มี c ตามด้วยอักขระหนึ่งตัว แล้วจึงตามด้วย t

import re

print(re.findall("c.t", "cat cot cut c@t"))
# ["cat", "cot", "cut", "c@t"]

กลุ่มตัวเลข คำ และช่องว่าง

กลุ่มอักขระแบบย่อครอบคลุมกลุ่มที่ใช้บ่อย:

  • \d — ตัวเลขหนึ่งหลัก (0-9)
  • \w — อักขระคำ (ตัวอักษร ตัวเลข หรือขีดล่าง)
  • \s — อักขระช่องว่าง (ช่องว่าง แท็บ หรือขึ้นบรรทัดใหม่)
import re

print(re.findall("\d", "a1b2c3"))     # ["1", "2", "3"]
print(re.findall("\w", "a_1!"))        # ["a", "_", "1"]
print(re.findall("\s", "a b\tc"))      # [" ", "\t"]

กลุ่มที่ปฏิเสธ

รูปแบบตัวพิมพ์ใหญ่จะปฏิเสธกลุ่มนั้น:

  • \D — สิ่งใดก็ตามที่ไม่ใช่ตัวเลข (NOT ตัวเลข)
  • \W — NOT อักขระคำ
  • \S — NOT อักขระช่องว่าง
import re

print(re.findall("\D", "a1b2"))   # ["a", "b"]
print(re.findall("\S", "a b c"))  # ["a", "b", "c"]

ชุดอักขระกำหนดเองด้วย [ ]

วงเล็บเหลี่ยมใช้กำหนดชุดของคุณเอง โดยจะตรงกับอักขระหนึ่งตัวที่อยู่ภายใน ช่วงใช้เครื่องหมายยัติภังค์

  • [aeiou] — สระใด ๆ
  • [A-Za-z] — ตัวอักษรใด ๆ
  • [0-9] — ตัวเลขใด ๆ (เหมือนกับ \d)
import re

print(re.findall("[A-Za-z]", "ab12CD"))   # letters only
print(re.findall("[aeiou]", "hello"))      # ["e", "o"]

ชุดที่ปฏิเสธด้วย [^ ]

เครื่องหมายแครอต ภายในวงเล็บจะปฏิเสธชุดนั้น โดยจะตรงกับอักขระใด ๆ ที่ไม่ได้ระบุไว้

[^abc] ตรงกับทุกสิ่งยกเว้น a, b หรือ c (เครื่องหมายแครอตที่อยู่นอกวงเล็บคือจุดยึด ซึ่งจะกล่าวถึงในหัวข้อถัดไป)

import re

print(re.findall("[^aeiou ]", "hello world"))
# consonants: ["h", "l", "l", "w", "r", "l", "d"]

จุดยึด: ^ และ $

จุดยึดจะตรงกับตำแหน่ง ไม่ใช่อักขระ:

  • ^ — จุดเริ่มต้นของสตริง (หรือบรรทัด)
  • $ — จุดสิ้นสุดของสตริง (หรือบรรทัด)

^Hello จะตรงกันก็ต่อเมื่อข้อความเริ่มต้นด้วย "Hello"

import re

print(bool(re.search("^Hello", "Hello world")))  # True
print(bool(re.search("world$", "Hello world")))  # True
print(bool(re.search("^world", "Hello world")))  # False

ตัวระบุจำนวน: + * ?

ตัวระบุจำนวนบอกว่ารายการก่อนหน้าจะซ้ำกี่ครั้ง:

  • + — หนึ่งครั้งขึ้นไป
  • * — ศูนย์ครั้งขึ้นไป
  • ? — ศูนย์หรือหนึ่งครั้ง (ไม่บังคับ)
import re

print(re.findall("\d+", "abc 123 de 45"))   # ["123", "45"]
print(re.findall("ab*", "a ab abb"))         # ["a", "ab", "abb"]
print(re.findall("colou?r", "color colour")) # both match

ตัวระบุจำนวนช่วง {n,m}

วงเล็บปีกกาใช้ระบุจำนวนที่แน่นอนหรือช่วง:

  • {3} — ตรงสามครั้งพอดี
  • {2,4} — ระหว่างสองถึงสี่ครั้ง
  • {2,} — สองครั้งขึ้นไป

เหมาะสำหรับรายการที่มีความยาวคงที่ เช่น รหัส ZIP หรือส่วนของหมายเลขโทรศัพท์

import re

print(re.findall("\d{3}", "12 345 6789"))    # ["345", "678"]
print(re.findall("\d{2,4}", "1 22 3333 55555"))

การประกอบส่วนต่าง ๆ เข้าด้วยกัน

รูปแบบจริงจะประกอบด้วยกลุ่ม ชุด จุดยึด และตัวระบุจำนวน รูปแบบนี้ตรงกับหมายเลขโทรศัพท์ US อย่างง่าย เช่น 555-123-4567:

\d{3}-\d{3}-\d{4} — ตัวเลขสามหลัก ยัติภังค์ ตัวเลขสามหลัก ยัติภังค์ และตัวเลขสี่หลัก

import re

text = "Call 555-123-4567 or 999-888-7777"
print(re.findall("\d{3}-\d{3}-\d{4}", text))
# ["555-123-4567", "999-888-7777"]

ตรวจสอบด่วน: ตัวระบุจำนวน

คุณต้องการจับคู่ตัวเลขที่ต่อเนื่องกันตั้งแต่หนึ่งหลักขึ้นไป

ทบทวน: รูปแบบและกลุ่มอักขระ

ตอนนี้คุณรู้จักส่วนประกอบพื้นฐานของนิพจน์ทั่วไปแล้ว:

  • อักขระตรงตัวและอักขระแทน .
  • กลุ่ม \d \w \s และรูปแบบปฏิเสธของกลุ่มเหล่านี้ \D \W \S
  • ชุดกำหนดเอง [A-Za-z] และชุดที่ปฏิเสธ [^abc]
  • จุดยึด ^ และ $
  • ตัวระบุจำนวน + * ? และช่วง {n,m}

ถัดไป: ฟังก์ชันของโมดูล Python re

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

บทเรียน “รูปแบบนิพจน์ประจำและคลาสอักขระ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “รูปแบบนิพจน์ประจำและคลาสอักขระ”

\d, \w, \s, ., ^, $, +, *, ?, {n,m}, คลาสอักขระ [a-z] และการปฏิเสธ [^...] คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “รูปแบบนิพจน์ประจำและคลาสอักขระ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. รูปแบบนิพจน์ประจำและคลาสอักขระ
  2. โมดูล re: search, match, findall, sub
  3. กลุ่มจับและกลุ่มที่มีชื่อ
  4. การทำความสะอาดข้อความสำหรับปัญญาประดิษฐ์ด้วยนิพจน์ רגูลาร์
← กลับไปที่ Learn AI with Python