Camel case and snake case: Difference between revisions
Content added Content deleted
(Python example) |
|||
Line 596: | Line 596: | ||
c://my-docs/happy_Flag-Day/12.doc ===> c://myDocs/happyFlagDay/12.doc |
c://my-docs/happy_Flag-Day/12.doc ===> c://myDocs/happyFlagDay/12.doc |
||
spaces ===> spaces |
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> |
</pre> |
||