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

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


ปัญหาที่เราพยายามแก้ไขคือการแปลง 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