Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Regex ใน Python ใส่ช่องว่างระหว่างคำที่ขึ้นต้นด้วยตัวพิมพ์ใหญ่

ปัญหาคือแปลง 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