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

เขียนฟังก์ชัน Python แปลง CamelCase เป็น snake_case

ใช้ Regular Expression (regex) เพื่อแทรก underscore ก่อนตัวอักษรใหญ่แล้วแปลงเป็นตัวเล็กทั้งหมด

โค้ด

import re

def convert(name):
    s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()

print(convert('JavaBeans'))        # java_beans
print(convert('JavaStrutsSwing'))  # java_struts_swing

ผลลัพธ์

java_beans
java_struts_swing

Regex แรกจัดการตัวใหญ่ตามด้วยตัวเล็ก (เช่น B ใน Beans) Regex ที่สองจัดการตัวเล็ก/ตัวเลขตามด้วยตัวใหญ่