Lee Jaeyoon2
재유니버스
Lee Jaeyoon2
전체 방문자
오늘
어제
  • 분류 전체보기 (228)
    • TIL (165)
    • 생각 (11)
    • 서평 (1)
    • JavaScript & TypeScript (4)
    • React (0)
    • C (45)
    • 에러 핸들링 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • map
  • C
  • 객체
  • 코드숨 리액트 8기
  • 회고
  • TiL
  • 코드숨 리액트
  • react
  • 코딩 도장
  • 5F
  • JavaScript
  • 실수
  • 플래그
  • C언어 코딩 도장
  • dotenv-webpack
  • 코드숨
  • dotenv
  • 변수
  • 심사 문제
  • c언어

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Lee Jaeyoon2

재유니버스

TIL

TIL - 20221002 (JavaScript 특정 문자열 제거 정규 표현식)

2022. 10. 2. 22:39

 코딩 테스트에 나온 조건이거나 특정 문자열을 제거하고 싶은 상황이 있다고 가정해보자. 예를 들어,

마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환

라는 조건이 있다고 가정해보자.

 

반복문으로 문자열의 인덱스를 확인하며 반복된 문자를 하나씩 지울 수도 있겠지만, 만약 '...'와 같이 되어있어서 '..'가 되었을 때 또 하나를 지워야 하는데 그러면 어떻게 코드로 구현할지 골치 아플 수도 있으며, 시간 복잡도에서도 불리할 수 있다. 이를 정규 표현식으로 깔끔하게 해결할 수 있다. 예시 속 조건으로 확인해보자.

 

const str1 = '...,..';
str1.replace(/[.]+/g, '.'); // '.,.'

 

정규 표현식에서 [.]는 '.'를 찾겠다는 의미이며 여기서 +가 붙어서 '.'가 연속된 문자열을 찾아 그 문자열을 '.'로 치환하겠다는 의미이다. 따라서, 예시 속 ','앞에 위치하는 '...'는 연속된 세 개의 '.'이 '.' 하나로 치환되는 것이고 ','는 문제없이 넘어간 다음 뒤에 나오는 연속된 두 개의 '.'도 '.' 하나로 치환되는 것이다. 이렇게 해결하면 반복문으로 구현하지 않아도, 시간 복잡도에서도, 코드의 간단함, 가독성 측면에서도 모두 좋다.

'TIL' 카테고리의 다른 글

TIL - 20221004 (유클리드 거리와 맨해튼 거리)  (1) 2022.10.04
TIL - 20221003  (0) 2022.10.03
TIL - 20221001  (0) 2022.10.01
TIL - 20220930(JavaScript 객체에서 값을 기준으로 필터링하기)  (1) 2022.09.30
TIL - 20220929  (0) 2022.09.29
    'TIL' 카테고리의 다른 글
    • TIL - 20221004 (유클리드 거리와 맨해튼 거리)
    • TIL - 20221003
    • TIL - 20221001
    • TIL - 20220930(JavaScript 객체에서 값을 기준으로 필터링하기)
    Lee Jaeyoon2
    Lee Jaeyoon2

    티스토리툴바