정규식
RegExp
표준형
const re = /ab+c/i
객체 생성자 호출
const re = new RegExp('ab+c', 'i');
const re = new RegExp(/ab+c/, 'i');
Flag 종류
- g: Globa - 문자열 내의 모든패턴을 찾는다.
- i: Ignore Case - 문자열의 대소문자를 구별하지 않는다.
- m: Multi Line - 문자열의 행이 바뀌어도 찾는다.
대표적인
- ^ : 시작표시(매칭이 처음부터 되어야 함)
- $ : 끝표시(문자열 끝에 매칭되어야 함)
- [] : 문자열 셋 [ab][a-z][0-9] 라고 써주면 첫글자는 a또는 b이고 그 다음에 a~z가 나오고 그 뒤에 0~9가 나온다는 뜻.. []안에서 ^쓰면 그 문자가 아닌것들
*
: 0번 이상 반복+
: 1번 이상 반복- ? : 0 또는 1회
- {} : 횟수 표시 [a]{2}이면 aa이고 [a]{2,}이면 a가 2개 이상인거 [a]{2, 4}이면 aa, aaa, aaaa 이다.
- \d : 숫자, [0-9]와 같음
- \D : 숫자가 아닌 것들 [^0-9]와 같음
|
: Or의 뜻- {} : 그룹을 묶어 준다.
- . : 뉴라인(\n)제외한 한 문자 (진짜 .을 찍기 위해선 .으로 표시해야 한다.)
예시
숫자와 문자가 섞여있는 문자열에서 숫자만을 추출해 작은 수부터 정렬
function solution(my_string) {
return my_string.match(/\d/g).sort((a, b) => a - b).map(n => Number(n));
}
my_string.match(/\d/g); // 문자열에서 숫자만을 추출, 배열로 반환
function solution(my_string) {
return my_string.replace(/[^0-9]/g, '').split('').sort((a, b) => a - b).map(Number);
}
여기서 [^0-9]는 숫자가 아닌 것들을 의미
댓글남기기