রেগুলার এক্সপ্রেশন (regex) ব্যবহার করে ক্যামেলকেস (CamelCase) স্ট্রিংকে স্নেককেস (snake_case) এ কনভার্ট করা যায়। এটি পাইথন কোডিং কনভেনশন (PEP 8) ফলো করার জন্য দরকারি।
কোড
import re
def convert(name):
# প্রথমে: CapitAlLetter + lowercase letters এর আগে আন্ডারস্কোর
s1 = re.sub(r'(.)([A-Z][a-z]+)', r'\1_\2', name)
# তারপর: lowercase/digit + CapitalLetter এর মাঝে আন্ডারস্কোর
return re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
print(convert('JavaBeans')) # java_beans
print(convert('JavaStrutsSwing')) # java_struts_swing
রেজেক্স ব্যাখ্যা
(.)([A-Z][a-z]+)— যেকোনো ক্যারেক্টার + বড় হ্রস্ব লেটার সিকোয়েন্স। উদাহরণ:J+avaBeans→J_avaBeans।([a-z0-9])([A-Z])— ছোট হ্রস্ব/ডিজিট + বড় হ্রস্ব। উদাহরণ:aB→a_B।.lower()— পুরো স্ট্রিংকে লোয়ারকেসে আনা।
অ্য্লтернаিটিভ: stringcase লাইব্রেরি
pip install stringcase
import stringcase
stringcase.snakecase('JavaBeans') # 'java_beans'