문자열을 카멜 케이스로 변환 CodeWars Kata

코드워



Codewars은 다양한 유형과 난이도 수준의 프로그래밍 작업을 해결하여 코딩 기술을 배우고, 훈련하고, 향상시키는 데 도움이 되는 플랫폼입니다. 여기에 내가 여기에서 해결한 첫 번째 Kata가 있으며 여기 DEV에서 내 솔루션을 공유하고 싶습니다.

카타란 무엇입니까?



Codewars에서 kata는 기술과 기술 향상에 중점을 둔 코드 챌린지입니다.

❓ 제 첫 번째 카타는 다음과 같습니다.

Link to the Kata

Write a method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized (known as Upper Camel Case, also often referred to as Pascal case).

Examples

"the-stealth-warrior" gets converted to "theStealthWarrior"
"The_Stealth_Warrior" gets converted to "TheStealthWarrior"



💡 Regex을 사용하여 거의 모든 프로그래밍 언어에서 검색 및 바꾸기를 수행할 수 있습니다.



Regular expression

정규식은 텍스트에서 검색 패턴을 지정하는 일련의 문자입니다. 일반적으로 이러한 패턴은 문자열에 대한 "찾기"또는 "찾기 및 바꾸기"작업 또는 입력 유효성 검사를 위해 문자열 검색 알고리즘에서 사용됩니다. 정규식 기술은 이론적 컴퓨터 과학 및 형식 언어 이론에서 개발됩니다.


View on Wikipedia



정규식 검색을 수행하고 콜백을 사용하여 preg_replace_callback 또는 "_\w" 또는 "-\w"와 같은 패턴을 찾아 동등한 대문자로 바꾸는 PHP에서 _a 함수를 사용했습니다. -b => _b와 같이 Bthe-stealth가 됩니다.

💻 따라서 PHP에서 내 솔루션은 다음과 같습니다.

function toCamelCase($str){
    return preg_replace_callback('/(\-|\_)([a-z])/i', function ($match) {
        return strtoupper($match[2]);
    }, $str);
}

theStealth가 무엇인지 물어볼 수 있습니다. 다음은 $match[2] 출력입니다.

array(3) {
  [0]=>
  string(2) "_s"
  [1]=>
  string(1) "_" 
  [2]=>
  string(1) "s" 
}


이 배열에 포함된 각 반복 내부에서 볼 수 있듯이 정규식 그룹 옆에 일치하는 문자열이 있습니다! 여기서는 $match[2]`로 해당 그룹에 액세스할 수 있습니다.

감사합니다 ❤️



프로그래밍의 세계를 처음 접하는 사람이나 궁금한 사람 🧐에게 제 글이 도움이 되었으면 좋겠습니다!
콘텐츠가 유용하다고 생각되면 의견을 댓글로 남겨주세요. 여러분 모두에게서 배우고 싶습니다.

당신의 애정 어린 지시에 감사드립니다.

좋은 웹페이지 즐겨찾기