การใช้เรกุลาร์เอ็กเพรสชัน

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