함수 snake_case()

1 개요[ | ]

함수 snake_case()

2 PHP[ | ]

function snake_case($value) {
    if (ctype_lower($value)) return $value;
    $value = preg_replace('/[\s]+/u', '', ucwords(str_replace('-','_',$value)));
    return mb_strtolower(preg_replace('/(.)(?=[A-Z])/u', '$1_', $value), 'UTF-8');
}
$samples = ['foo_bar', 'Foo Bar', 'FooBar', 'fooBar', 'foo bar', 'foo-bar', 'Foobar', 'FOOBAR'];
foreach( $samples as $sample ) {
	echo $sample." → ".snake_case($sample) . PHP_EOL;
}
# foo_bar → foo_bar
# Foo Bar → foo_bar
# FooBar → foo_bar
# fooBar → foo_bar
# foo bar → foo_bar
# foo-bar → foo_bar
# Foobar → foobar
# FOOBAR → f_o_o_b_a_r

3 Python[ | ]

import re
def snake_case(s):
    return re.sub(r"[-_ ]+","_",re.sub(r"^_","",re.sub(r"([A-Z])", r"_\1",s))).lower()

samples = ['foo_bar', 'Foo Bar', 'FooBar', 'fooBar', 'foo bar', 'foo-bar', 'Foobar', 'FOOBAR']
for sample in samples:
    print(sample, '→', snake_case(sample))
# foo_bar → foo_bar
# Foo Bar → foo_bar
# FooBar → foo_bar
# fooBar → foo_bar
# foo bar → foo_bar
# foo-bar → foo_bar
# Foobar → foobar
# FOOBAR → f_o_o_b_a_r

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}