ปัญหาคือแปลง CamelCase เป็นคำแยกกัน แก้ได้โดย regex หาตัวพิมพ์ใหญ่ทั้งหมด ใส่ช่องว่างหน้ามัน ใช้ sub จาก re module
เช่น สตริงอินพุท
AReallyLongVariableNameInJava
ควรได้ผลลัพธ์
A Really Long Variable Name In Java
ใช้ regex "[A-Z]" หาตัวพิมพ์ใหญ่ แทนที่ด้วยช่องว่างและตัวอักษรเดิม ใช้ re package
ตัวอย่าง
import re
# หาตัวพิมพ์ใหญ่ทั้งหมดจับในกลุ่ม และแทนที่ด้วย \1 นำหน้าช่องว่าง strip() ตัดช่องว่างหน้าตัวแรก
separated_str = re.sub("([A-Z])", " \1", "AReallyLongVariableNameInJava").strip()
print(separated_str)
ผลลัพธ์
A Really Long Variable Name In Java