Anda mungkin lebih baik dengan cek ini:
>>> import unicodedata
>>> unicodedata.category("'").startswith("P")
True
>>> unicodedata.category("’").startswith("P")
True
Kategori Unicode P * khusus untuk Tanda baca :
konektor (Pc), tanda hubung (Pd), kutipan awal (Pi), kutipan akhir (Pf), buka (Ps), tutup (Pe), lainnya (Po)
Untuk menyiapkan koleksi lengkap, yang selanjutnya dapat Anda gunakan untuk cek keanggotaan cepat, gunakan pemahaman set:
>>> import sys
>>> from unicodedata import category
>>> codepoints = range(sys.maxunicode + 1)
>>> punctuation = {c for i in codepoints if category(c := chr(i)).startswith("P")}
>>> "'" in punctuation
True
>>> "’" in punctuation
True
Ekspresi penugasan di sini membutuhkan Python 3.8+, setara dengan versi Python yang lebih lama:
chrs = (chr(i) for i in range(sys.maxunicode + 1))
punctuation = set(c for c in chrs if category(c).startswith("P"))
Berhati-hatilah karena beberapa karakter lain ada di string.punctuation
dalam simbol Unicode kategori . Sangat mudah untuk menambahkan mereka juga jika Anda mau.