JavaScript의 match함수
2023. 2. 13. 12:55ㆍAlgorithm
match와 gi
대소문자 구분하지 않고 찾아줌
"aPple".match(/p/gi) //return ["P", "p"]
match와 ?
만약 문자열에 찾으려는 단어가 없다면 null이 return된다.
match가 return하는 값의 길이를 구하는 코드를 짰는데
match결과가 null이면 error가 발생한다.
반면, 물음표를 붙여주면 undefined로 처리되어 에러가 발생하지 않는다.
"aPple".match(/g/gi).length;
// TypeError: Cannot read properties of null (reading 'length')
// at Object.<anonymous> (c:\Users\USER\Algorithm\level2\022js:1:33)
// at Module._compile (node:internal/modules/cjs/loader:1101:14)
// at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
// at Module.load (node:internal/modules/cjs/loader:981:32)
// at Function.Module._load (node:internal/modules/cjs/loader:822:12)
// at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
// at node:internal/main/run_main_module:17:47
"aPple".match(/g/gi)?.length;
// undefined
답안을 보니 오직 정규표현식으로만 해결한 사람이 있었고,
내가 아직 정규표현식에 무지하다는 생각이 들어 공부해보고자 한다!
정규표현식
정규표현식은 문자열에서 특정한 조합을 찾기 위한 방법이다.
표현을 슬래쉬에 넣어야 한다 /표현/
문자 a: a에 해당하는 것
문자집합 [a-z] [xyz] : xyz 중 하나에 해당하는 것
부정문자집합 [^a-z] [^xyz] : zyx 중 모두에 해당하지 않는 것
캡처 그룹 (apple) : 위의 집합은 집합 속 문자 하나에 해당하는 것을, 캡처 그룹은 이 문자열에 해당하는 것을
특수 문자 *: *직전 항목의 0번 이상 반복에 해당하는 것 (ab*c라면 abbbbc, ac, abbbbbbc 모두 해당함)
백슬래쉬를 활용한 정규표현식
[0-9] | \d |
[A-za-z0-9] | \w |
공백, 탭, 양식 공급, 줄 바꿈 및 기타 유니코드 공백 |
\s |
가로탭 | \t |
정규표현식의 세계는 무궁무진하기 때문에 새로운 것을 추가할 계획이다!
'Algorithm' 카테고리의 다른 글
[프로그래머스] 점프와 순간 이동 (0) | 2023.02.20 |
---|---|
[프로그래머스] N개의 최소공배수 (0) | 2023.02.20 |
[프로그래머스] 게임 맵 최단거리 (0) | 2023.02.12 |
[프로그래머스]두 정수 사이의 합 (1) | 2021.09.24 |
[프로그래머스]시저암호 (0) | 2021.09.15 |