Camel case and snake case: Difference between revisions

Python example
(Python example)
Line 596:
c://my-docs/happy_Flag-Day/12.doc ===> c://myDocs/happyFlagDay/12.doc
spaces ===> spaces
</pre>
 
=={{header|Python}}==
<lang python>""" https://rosettacode.org/wiki/Camel_case_and_snake_case """
 
import re
 
def snakeToCamelCase(nam, sep='[_]+', lcmiddle=False):
""" convert snake '_' separator case to camel case """
if nam == '':
return nam
words = re.split(sep, nam.strip())
if lcmiddle:
words = [w.lower() for w in words]
words[1:] = [w[0].upper() + w[1:] for w in words[1:] if len(w) > 0]
return ''.join(words)
 
 
def spaceToCamelCase(nam):
""" convert space case to camel case """
return snakeToCamelCase(nam, sep='\s+')
 
def kebabToCamelCase(nam):
""" convert kebab '-' case to camel case """
return snakeToCamelCase(nam, sep='[\-]+')
 
def periodToCamelCase(nam):
""" convert period '.' case to camel case """
return snakeToCamelCase(nam, sep='[\.]+')
 
def allsepToCamelCase(nam):
""" convert all separators in allsep to camel case """
return snakeToCamelCase(nam, sep='[ \-_\.]+')
 
def lowermiddle_allsepToCamelCase(nam):
""" convert all separators to camel case, and all but word starts to lowercase """
return snakeToCamelCase(nam, sep='[ \-_\.]+', lcmiddle=True)
 
def camel_to_snake_case(nam, sep='_', allsep='[_]+', lcmiddle=True):
""" convert camel case to snake case (separate with '_') """
nam = re.sub('([A-Z]+)', sep + r"\1", nam.strip())
sep1 = '\\' + sep if sep == '.' else sep
if lcmiddle:
nam = sep.join([w.lower() for w in nam.split(sep1) if len(w) > 0])
else:
nam = sep.join([w[0].lower() + w[1:] for w in nam.split(sep1) if len(w) > 0])
return re.sub(allsep, sep, nam)
 
def preserve_midcaps_camel_to_snake_case(nam):
return camel_to_snake_case(nam, lcmiddle=False)
 
def allsep_to_snake_case(nam):
return camel_to_snake_case(nam, allsep='[ \-\._]+')
 
def allsep_to_kebab_case(nam):
return camel_to_snake_case(nam, allsep='[ \-\._]+', sep='-')
 
def allsep_to_space_case(nam):
return camel_to_snake_case(nam, allsep='[ \-\._]+', sep=' ')
 
def allsep_to_period_case(nam):
return camel_to_snake_case(nam, allsep='[ \-\._]+', sep='.')
 
def allsep_to_slash_case(nam):
return camel_to_snake_case(nam, allsep='[ \-\._]+', sep='/')
 
for f in [
snakeToCamelCase,
spaceToCamelCase,
kebabToCamelCase,
periodToCamelCase,
allsepToCamelCase,
lowermiddle_allsepToCamelCase,
camel_to_snake_case,
preserve_midcaps_camel_to_snake_case,
allsep_to_snake_case,
allsep_to_kebab_case,
allsep_to_space_case,
allsep_to_period_case,
allsep_to_slash_case]:
print(f"Testing function {f}:")
for teststring in [
"snakeCase",
"snake_case",
"snake-case",
"snake case",
"snake CASE",
"snake.case",
"variable_10_case",
"variable10Case",
"ɛrgo rE tHis",
"hurry-up-joe!",
"c://my-docs/happy_Flag-Day/12.doc",
" spaces "]:
print(teststring.rjust(36), " => ", f(teststring))
print()
</lang>{{out}}
<pre>
Testing function <function snakeToCamelCase at 0x000001F17C25AC10>:
snakeCase => snakeCase
snake_case => snakeCase
snake-case => snake-case
snake case => snake case
snake CASE => snake CASE
snake.case => snake.case
variable_10_case => variable10Case
variable10Case => variable10Case
ɛrgo rE tHis => ɛrgo rE tHis
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happyFlag-Day/12.doc
spaces => spaces
 
Testing function <function spaceToCamelCase at 0x000001F17C25AA60>:
snakeCase => snakeCase
snake_case => snake_case
snake-case => snake-case
snake case => snakeCase
snake CASE => snakeCASE
snake.case => snake.case
variable_10_case => variable_10_case
variable10Case => variable10Case
ɛrgo rE tHis => ɛrgoRETHis
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happy_Flag-Day/12.doc
spaces => spaces
 
Testing function <function kebabToCamelCase at 0x000001F17C25ADC0>:
snakeCase => snakeCase
snake_case => snake_case
snake-case => snakeCase
snake case => snake case
snake CASE => snake CASE
snake.case => snake.case
variable_10_case => variable_10_case
variable10Case => variable10Case
ɛrgo rE tHis => ɛrgo rE tHis
hurry-up-joe! => hurryUpJoe!
c://my-docs/happy_Flag-Day/12.doc => c://myDocs/happy_FlagDay/12.doc
spaces => spaces
 
Testing function <function periodToCamelCase at 0x000001F17C25AE50>:
snakeCase => snakeCase
snake_case => snake_case
snake-case => snake-case
snake case => snake case
snake CASE => snake CASE
snake.case => snakeCase
variable_10_case => variable_10_case
variable10Case => variable10Case
ɛrgo rE tHis => ɛrgo rE tHis
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happy_Flag-Day/12Doc
spaces => spaces
 
Testing function <function allsepToCamelCase at 0x000001F17C25AEE0>:
snakeCase => snakeCase
snake_case => snakeCase
snake-case => snakeCase
snake case => snakeCase
snake CASE => snakeCASE
snake.case => snakeCase
variable_10_case => variable10Case
variable10Case => variable10Case
ɛrgo rE tHis => ɛrgoRETHis
hurry-up-joe! => hurryUpJoe!
c://my-docs/happy_Flag-Day/12.doc => c://myDocs/happyFlagDay/12Doc
spaces => spaces
 
Testing function <function lowermiddle_allsepToCamelCase at 0x000001F17C25AF70>:
snakeCase => snakecase
snake_case => snakeCase
snake-case => snakeCase
snake case => snakeCase
snake CASE => snakeCase
snake.case => snakeCase
variable_10_case => variable10Case
variable10Case => variable10case
ɛrgo rE tHis => ɛrgoReThis
hurry-up-joe! => hurryUpJoe!
c://my-docs/happy_Flag-Day/12.doc => c://myDocs/happyFlagDay/12Doc
spaces => spaces
 
Testing function <function camel_to_snake_case at 0x000001F17C262040>:
snakeCase => snake_case
snake_case => snake_case
snake-case => snake-case
snake case => snake case
snake CASE => snake _case
snake.case => snake.case
variable_10_case => variable_10_case
variable10Case => variable10_case
ɛrgo rE tHis => ɛrgo r_e t_his
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happy_flag-_day/12.doc
spaces => spaces
 
Testing function <function preserve_midcaps_camel_to_snake_case at 0x000001F17C2620D0>:
snakeCase => snake_case
snake_case => snake_case
snake-case => snake-case
snake case => snake case
snake CASE => snake _cASE
snake.case => snake.case
variable_10_case => variable_10_case
variable10Case => variable10_case
ɛrgo rE tHis => ɛrgo r_e t_his
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happy_flag-_day/12.doc
spaces => spaces
 
Testing function <function allsep_to_snake_case at 0x000001F17C262160>:
snakeCase => snake_case
snake_case => snake_case
snake-case => snake_case
snake case => snake_case
snake CASE => snake_case
snake.case => snake_case
variable_10_case => variable_10_case
variable10Case => variable10_case
ɛrgo rE tHis => ɛrgo_r_e_t_his
hurry-up-joe! => hurry_up_joe!
c://my-docs/happy_Flag-Day/12.doc => c://my_docs/happy_flag_day/12_doc
spaces => spaces
 
Testing function <function allsep_to_kebab_case at 0x000001F17C2621F0>:
snakeCase => snake-case
snake_case => snake-case
snake-case => snake-case
snake case => snake-case
snake CASE => snake-case
snake.case => snake-case
variable_10_case => variable-10-case
variable10Case => variable10-case
ɛrgo rE tHis => ɛrgo-r-e-t-his
hurry-up-joe! => hurry-up-joe!
c://my-docs/happy_Flag-Day/12.doc => c://my-docs/happy-flag-day/12-doc
spaces => spaces
 
Testing function <function allsep_to_space_case at 0x000001F17C262280>:
snakeCase => snake case
snake_case => snake case
snake-case => snake case
snake case => snake case
snake CASE => snake case
snake.case => snake case
variable_10_case => variable 10 case
variable10Case => variable10 case
ɛrgo rE tHis => ɛrgo r e t his
hurry-up-joe! => hurry up joe!
c://my-docs/happy_Flag-Day/12.doc => c://my docs/happy flag day/12 doc
spaces => spaces
 
Testing function <function allsep_to_period_case at 0x000001F17C262310>:
snakeCase => snake.case
snake_case => snake.case
snake-case => snake.case
snake case => snake.case
snake CASE => snake.case
snake.case => snake.case
variable_10_case => variable.10.case
variable10Case => variable10.case
ɛrgo rE tHis => ɛrgo.r.e.t.his
hurry-up-joe! => hurry.up.joe!
c://my-docs/happy_Flag-Day/12.doc => c://my.docs/happy.flag.day/12.doc
spaces => spaces
 
Testing function <function allsep_to_slash_case at 0x000001F17C2623A0>:
snakeCase => snake/case
snake_case => snake/case
snake-case => snake/case
snake case => snake/case
snake CASE => snake//case
snake.case => snake/case
variable_10_case => variable/10/case
variable10Case => variable10/case
ɛrgo rE tHis => ɛrgo/r/e/t/his
hurry-up-joe! => hurry/up/joe!
c://my-docs/happy_Flag-Day/12.doc => c:/my/docs/happy//flag//day/12/doc
spaces => spaces
</pre>
 
4,102

edits