ปัญหาที่เราพยายามแก้ไขคือการแปลง CamelCase ให้แยกคำออก เราสามารถแก้ปัญหานี้ได้โดยตรงโดยใช้ regexes โดยค้นหาการเกิดขึ้นของตัวพิมพ์ใหญ่ในสตริงที่กำหนดและเว้นวรรคก่อน เราสามารถใช้วิธีย่อยจากโมดูล re ได้
ตัวอย่างเช่น สำหรับสตริงอินพุต −
AReallyLongVariableNameInJava
เราควรจะได้ผลลัพธ์ -
A Really Long Variable Name In Java
เราสามารถใช้ "[A-Z]" regex เพื่อค้นหาอักษรตัวพิมพ์ใหญ่ทั้งหมด จากนั้นแทนที่ด้วยช่องว่างและตัวอักษรนั้นอีกครั้ง เราสามารถใช้งานได้โดยใช้ re package ดังนี้ −
ตัวอย่าง
import re # Find and capture all capital letters in a group and make that replacement # using the \1 preceded by a space. Strip the string to remove preceding # space before first letter. separated_str = re.sub("([A-Z])", " \\1", "AReallyLongVariableNameInJava").strip() print(separated_str)
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
A Really Long Variable Name In Java