알고리즘 문제를 맛만 여러번 본 결과...
사실 알고리즘 문제 풀면서 정규표현식을 사용하면 간단하게 끝나는 문제들이 많았다..
하지만 나는 일일히 반복문 돌려서 검사했다ㅎ 그 것 밖에 모르는데 어떡한담?
아무튼 정규표현식은 실제 프로젝트할 때도 유용하게 쓸 수 있을 것 같아서 간단하게 한 번 정리해 보려고 한다 ㅇ_<
문자열에서 특정 문자 조합을 찾기 위한 패턴이다.
JavaScript에서는 정규 표현식도 객체!
그래서 RegExp과 String의 메서드들을 함께 사용할 수 있다!!
간단하게 메서드별로 어떤 구조로 사용되는지 알아보자!
Method | Result |
---|---|
("문자열").match(/정규표현식/플래그) | "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 return |
("문자열").replace(/정규표현식/, "대체문자열") | "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환 |
("문자열").split(정규표현식) | "문자열"을 "정규표현식"에 매칭되는 항목으로 분할해서 배열로 return |
(정규표현식).test("문자열") | "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false반환 |
(정규표현식).exec("문자열") | match메서드와 유사하지만 무조건 첫번째 매칭 결과만 return |
Flag | Description |
---|---|
i | 대소문자 구분없이 검색 |
g | 문자열 내 모든 패턴 검색 |
m | 개행 상관없이 검색 |
Pattern | Description |
---|---|
a-zA-Z | 영어알파벳(-으로 범위 지정) |
ㄱ-ㅎ가-힣 | 한글 문자(-으로 범위 지정) |
0-9 | 숫자(-으로 범위 지정) |
. | 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두) 단, 줄바꿈 제외 |
\d | 숫자 |
\D | 숫자가 아닌 것 |
\w | 밑줄 문자를 포함한 영숫자 문자에 대응 (= [A-Za-z0-9_]) |
\W | \w 가 아닌 것 |
\s | space 공백 |
\S | space 공백이 아닌 것 |
\특수기호 | 특수기호 * \^ \& ! \? ...등 |
Pattern | Description |
---|---|
| | OR (a|b) |
[] | 괄호안의 문자들 중 하나. /abc/ : "abc" 포함, /[abc]/ : "a" or "b" or "c" 포함, [다-바] : 다 or 라 or 마 or 바 |
[^문자] | 괄호안의 문자를 제외한 것 (대괄호 안에서 쓰면 제외의 뜻, 대괄호 밖에서 쓰면 시작점 뜻) |
^문자열 | 특정 문자열로 시작 (시작점) |
문자열$ | 특정 문자열로 끝남 (종착점) |
사실 더 있다...근데 이정도만 알아도 될 것 같다~ 정도로만 정리하고 나중에 필요하면 추가로 정리해야겠다...ㅎ (변명)
문자열 my_string
이 매개변수로 주어질 때, my_string
안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
my_string
의 길이 ≤ 100my_string
에는 숫자가 한 개 이상 포함되어 있습니다.my_string
은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다.my_string | result |
---|---|
"hi12392" | [1, 2, 2, 3, 9] |
"p2o4i8gj2" | [2, 2, 4, 8] |
"abcde0" | [0] |
입출력 예 #1
입출력 예 #2
입출력 예 #3
//풀이 1
const solution = (my_string) => my_string.split('').filter(x=>!isNaN(x)).map((num)=>Number(num)).sort((a,b)=>a-b)
//풀이 2 RegExp로 풀이
const solution = (my_string) => my_string.match(/\d/g).sort((a, b) => a - b).map(n => Number(n));
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string
이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
my_string
은 소문자와 공백으로 이루어져 있습니다.my_string
의 길이 ≤ 1,000my_string | result |
---|---|
"bus" | "bs" |
"nice to meet you" | "nc t mt y" |
입출력 예 #1
입출력 예 #1
const solution = (my_string) => my_string.replace(/['a','e','i','o','u']/g,'')
const solution = (my_string) => my_string.replace(/[aeiou]/g,'')
https://inpa.tistory.com/entry/JS-📚-정규식-RegExp-누구나-이해하기-쉽게-정리