22.11.22_ TIL_알고리즘모의_replace()_정규식

YES31·2022년 11월 22일
0

TIL

목록 보기
3/35
post-thumbnail

알고리즘 문제를 풀어가다 보니 replace()정규식을 활용해 풀면 편한 문제를 만났다. 구글링과 MDN, velog 그리고 같이 공부를 하는 팀원의 공유로 어느정도 이해를 하게되어 이렇게 글을 쓴다. 정규식에 대한 예시는 replace()를 활용한다.


정규식

replace(/[asdf]/e, ~)

replace(/[^\w_.-]/g, "") 
        ~~~~~~~~~~~

먼저 ( ) 안에 정규식으로 원하는 값을 내도록 범위나 특정 조건을 걸어 활용할 수 있다.
"abbabbabb".replace(a, b)는 문자열에 a를 b로 치환하는 것이다.
/[asdf]/e에서 [asdf]는 문자열 조건에 해당하며, e의 내용은 옵션에 해당한다. 예를 들어 i는 대소문자의 구별없이 진행, g 문자열 전역으로 검색 등등이 있는데.. 처음 MDN에서 이런 설명만 보니 이해하기 너무 오래 걸렸다.. 정규식을 공부하는 개발자중 나처럼 시간 쏟는 일은 없길 바라며...

🎫 SAMPLE

.replace(/[^\w_.-]/g, "") 
//제외(^), 숫자 및 알파벳(\w),  _.- 를 문자열 전체에서(g), 빈 문자열로 치환("")
// 문자열에서 [^\w_.-]에 해당하는 값 외외의 값은 제거

.replace(/[.]{2,}/g, ".") 
// 점(.) 두개 이상({2,}) 전부(g) 하나로 교체
                 ~~~~~ // {2, } 내부에 (,) 가 붙어야 {2개이상, ~개 이하} 

.replace(/[.]{2}/g, ".") //라면 점(.)이 2개 일때 1개로 치환이다. 

.replace(/^[.]+/, "")
// 시작(^)에 점(.) 하나이상(+) 제거

.replace(/[.]+$/, "")
// 끝($)에 점 하나 이상 제거

.replace(/^$/, "a")
// 처음(^) 부터 끝($) 까지 아무것도 없다면 "a"로 교체

.replace(/[.]+$/, "")
// 끝에 점 제거 
?
.replace(/[b(a|e|i)d]/, "")
// b로 시작해서 d로 끝나며 중간에 a 또는 e 또는 i 를 포함한 문자열 찾기.
// bad , bed, bid 를 문자열에서 찾아 빈 문자열로 치환한다.

SAMPLE를 통해 구조가 어느정도 이해된다면, https://regexr.com/ 를 보는 것도 추천한다!

profile
🏀 주니어 개발자

0개의 댓글