เป็นการง่ายที่สุดในการใช้นิพจน์ทั่วไปสำหรับปัญหานี้ คุณสามารถแยกอักขระหลายตัวด้วย "|" และใช้ re.sub(chars_to_replace, string_to_replace_with, str) เรามีตัวอย่างเช่น:
>>> import re >>> consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'] >>> re.sub('|'.join(consonants), "", "Hello people", flags=re.IGNORECASE) "eo eoe"
หมายเหตุ:คุณยังใช้ [] เพื่อสร้างกลุ่มอักขระเพื่อแทนที่ใน regex ได้
หากคุณต้องการเก็บเฉพาะสระและลบอักขระอื่นๆ ทั้งหมด คุณสามารถใช้เวอร์ชันที่ง่ายกว่า โปรดทราบว่าระบบจะลบช่องว่าง ตัวเลข ฯลฯ ออกด้วย ตัวอย่างเช่น
>>> import re >>> re.sub('[^aeiou]', "", "Hello people", flags=re.IGNORECASE) "eoeoe"
คุณยังสามารถกรองพยัญชนะได้ดังนี้:
>>> consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'] >>> s = "Hello people" >>> ''.join(c for c in s if c.lower() not in consonants) 'eo eoe'