Python:
การใช้เรกุลาร์เอ็กเพรสชัน
วิธีการ:
การใช้ regex ใน Python เกี่ยวข้องกับโมดูล re
ซึ่งมีชุดของฟังก์ชันเพื่อประมวลผลข้อความโดยใช้ regular expressions
การจับคู่รูปแบบพื้นฐาน
เพื่อค้นหารูปแบบในสตริง ให้ใช้ re.search()
จะมีการคืนค่าเป็นอ็อบเจกต์ match เมื่อพบรูปแบบนั้น ไม่เช่นนั้นจะเป็น None
import re
text = "เรียนภาษา Python"
match = re.search("Python", text)
if match:
print("พบรูปแบบ!")
else:
print("ไม่พบรูปแบบ.")
ผลลัพธ์:
พบรูปแบบ!
การคอมไพล์ Regular Expressions
สำหรับการใช้รูปแบบเดียวกันซ้ำๆ คอมไพล์มันไว้ก่อนด้วย re.compile()
เพื่อประสิทธิภาพที่ดีขึ้น
pattern = re.compile("Python")
match = pattern.search("เรียนภาษา Python")
if match:
print("พบรูปแบบที่คอมไพล์!")
ผลลัพธ์:
พบรูปแบบที่คอมไพล์!
การแบ่งสตริง
เพื่อแบ่งสตริงทุกครั้งที่พบกับรูปแบบ regex ให้ใช้ re.split()
result = re.split("\s", "Python สนุก")
print(result)
ผลลัพธ์:
['Python', 'สนุก']
การหาคำที่ตรงกันทั้งหมด
เพื่อหาทุกครั้งที่ไม่ซ้อนทับกันของรูปแบบ ใช้ re.findall()
matches = re.findall("น", "การเขียนโปรแกรม Python")
print(matches)
ผลลัพธ์:
['น', 'น']
การแทนที่ข้อความ
ใช้ re.sub()
เพื่อแทนที่รูปแบบที่พบด้วยสตริงใหม่
replaced_text = re.sub("สนุก", "เจ๋ง", "Python สนุก")
print(replaced_text)
ผลลัพธ์:
Python เจ๋ง
ไลบรารี่ของบุคคลที่สาม
แม้โมดูล re
ที่มีอยู่ใน Python จะมีประสิทธิภาพสูง ไลบรารีของบุคคลที่สามเช่น regex
มีคุณสมบัติเพิ่มเติมและประสิทธิภาพที่เหนือกว่า เพื่อใช้ regex
ติดตั้งผ่าน pip (pip install regex
) และนำเข้าในโค้ดของคุณ
import regex
text = "เรียน Python 3.8"
match = regex.search(r"Python\s(\d+\.\d+)", text)
if match:
print(f"พบเวอร์ชัน: {match.group(1)}")
ผลลัพธ์:
พบเวอร์ชัน: 3.8