Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CamelCase Conversions
#3
There are some libraries for this eg stringcase, Inflection.
λ ptpython
>>> from stringcase import snakecase, camelcase, pascalcase

>>> snakecase('DeathToCamelCase')
'death_to_camel_case'
>>> camelcase('death_to_camel_case')
'deathToCamelCase'
>>> pascalcase('death_to_camel_case')
'DeathToCamelCase'

# Fail on this
>>> snakecase('getHTTPResponseCode')
'get_h_t_t_p_response_code'
This can also be good exercise to do in regex.
For many cases a would a expression like (?!^)([A-Z]+) work.
>>> import re
>>> 
>>> re.sub(r'(?!^)([A-Z]+)', r'_\1', 'DeathToCamelCase').lower() 
'death_to_camel_case'
>>> re.sub(r'(?!^)([A-Z]+)', r'_\1', 'FooBarBaz').lower() 
'foo_bar_baz'
>>> re.sub(r'(?!^)([A-Z]+)', r'_\1', 'getHTTPResponseCode').lower() 
'get_httpresponse_code'
Looking at net so have some made better like eg ((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z])).
Reply


Messages In This Thread
CamelCase Conversions - by Skaperen - Apr-18-2019, 12:57 AM
RE: CamelCase Conversions - by perfringo - Apr-18-2019, 07:58 AM
RE: CamelCase Conversions - by snippsat - Apr-18-2019, 10:01 AM
RE: CamelCase Conversions - by perfringo - Apr-18-2019, 10:12 AM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020