Camel case and snake case: Difference between revisions
Content added Content deleted
m (→{{header|Factor}}: improve comment) |
|||
Line 229: | Line 229: | ||
" internal space " >camel " internalSpace " |
" internal space " >camel " internalSpace " |
||
</pre> |
</pre> |
||
=={{header|Julia}}== |
|||
<lang julia>#= |
|||
Regex based variable name convention change string functions. |
|||
`sep` is the separator targeted for change from (to camel case) or to (to snake case) |
|||
`allsep` is the separators other than `sep` that may be changed to `sep` |
|||
`lcmiddle` is a boolean to set whether caps within camel case words are made lowercase |
|||
=# |
|||
function snakeToCamelCase(s; sep=r"[_]+", lcmiddle=false) |
|||
isempty(s) && return s |
|||
words = split(strip(s), sep) |
|||
return lowercasefirst(join(uppercasefirst.(lcmiddle ? lowercase.(words) : words))) |
|||
end |
|||
spaceToCamelCase(s) = snakeToCamelCase(s; sep=r"\s+") |
|||
kebabToCamelCase(s) = snakeToCamelCase(s; sep=r"[\-]+") |
|||
periodToCamelCase(s) = snakeToCamelCase(s; sep=r"[\.]+") |
|||
allsepToCamelCase(s) = snakeToCamelCase(s; sep=r"[ \-_\.]+") |
|||
lowermiddle_allsepToCamelCase(s) = snakeToCamelCase(s; sep=r"[ \-_\.]+", lcmiddle=true) |
|||
function camel_to_snake_case(s; sep="_", insep=sep, allsep=r"_+", lcmiddle=true) |
|||
s = isempty(s) ? (return s) : lowercasefirst(strip(s)) |
|||
s = replace(s, r"[A-Z]+" => x -> sep * (lcmiddle ? lowercase(x) : lowercasefirst(x))) |
|||
return replace(s, allsep => sep) |
|||
end |
|||
preserve_midcaps_camel_to_snake_case(s) = camel_to_snake_case(s; lcmiddle=false) |
|||
allsep_to_snake_case(s) = camel_to_snake_case(s; allsep=r"[ \-\._]+") |
|||
allsep_to_kebab_case(s) = camel_to_snake_case(s; allsep=r"[ \-\._]+", sep="-") |
|||
allsep_to_space_case(s) = camel_to_snake_case(s; allsep=r"[ \-\._]+", sep=" ") |
|||
allsep_to_period_case(s) = camel_to_snake_case(s; allsep=r"[ \-\._]+", sep=".") |
|||
allsep_to_slash_case(s) = camel_to_snake_case(s; allsep=r"[ \-\._]+", 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, |
|||
] |
|||
println("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 ", |
|||
] |
|||
println(lpad(teststring, 36), " => ", f(teststring)) |
|||
end |
|||
println() |
|||
end |
|||
</lang>{{out}} |
|||
<pre> |
|||
Testing function snakeToCamelCase: |
|||
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 spaceToCamelCase: |
|||
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 kebabToCamelCase: |
|||
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 periodToCamelCase: |
|||
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 allsepToCamelCase: |
|||
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 lowermiddle_allsepToCamelCase: |
|||
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 camel_to_snake_case: |
|||
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 preserve_midcaps_camel_to_snake_case: |
|||
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 allsep_to_snake_case: |
|||
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 allsep_to_kebab_case: |
|||
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 allsep_to_space_case: |
|||
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 allsep_to_period_case: |
|||
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 allsep_to_slash_case: |
|||
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> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |