ฉันต้องการแทนที่อักขระที่ไม่ใช่ ASCII (\ x00- \ x7F) ทั้งหมดด้วยช่องว่าง ฉันประหลาดใจที่นี่ไม่ได้เป็นเรื่องง่ายใน Python ถ้าฉันไม่ได้ทำอะไร ฟังก์ชันต่อไปนี้จะลบอักขระที่ไม่ใช่ ASCII ทั้งหมด:
def remove_non_ascii_1(text):
return ''.join(i for i in text if ord(i)<128)
และอันนี้แทนที่อักขระที่ไม่ใช่ ASCII ด้วยจำนวนช่องว่างตามจำนวนไบต์ในจุดรหัสอักขระ (เช่น–
ตัวละครจะถูกแทนที่ด้วย 3 ช่องว่าง):
def remove_non_ascii_2(text):
return re.sub(r'[^\x00-\x7F]',' ', text)
ฉันจะแทนที่อักขระที่ไม่ใช่ ASCII ทั้งหมดด้วยช่องว่างเดียวได้อย่างไร
ของ มากมายของที่คล้ายกันดังนั้นคำถาม , ไม่มีใครอยู่ตัวอักษรทดแทนเป็นตรงข้ามที่จะปอก , และนอกจากนี้ยังอยู่อักขระที่ไม่ใช่ ASCII ทั้งหมดที่ไม่ได้ตัวละครที่เฉพาะเจาะจง
–
ฉันพูดถึงตัวละครเช่นปัญหาในคำถาม: มันเป็นผู้ชายคนนี้