Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để xóa phụ âm khỏi một chuỗi trong Python?

Cách dễ nhất là sử dụng biểu thức chính quy cho vấn đề này. Bạn có thể tách nhiều ký tự bằng "|" và sử dụng re.sub (chars_to_replace, string_to_replace_with, str). Chúng tôi có Ví dụ:

>>> 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"

Lưu ý:Bạn cũng có thể sử dụng [] để tạo nhóm ký tự thay thế trong regex.

Nếu bạn chỉ muốn giữ lại các nguyên âm và loại bỏ tất cả các ký tự khác, bạn có thể sử dụng một phiên bản dễ dàng hơn. Lưu ý rằng nó cũng sẽ xóa dấu cách, số, v.v. Ví dụ,

>>> import re
>>> re.sub('[^aeiou]', "", "Hello people", flags=re.IGNORECASE)
"eoeoe"

Bạn cũng có thể lọc ra các phụ âm như sau:

>>> 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'