-
[Javascript] RegExp 정규표현식Language/Javascript 2024. 7. 9. 13:05
너무 편리한데 패턴을 자꾸 까먹어서 정리해보았다.
Regular Expression
일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어
문자열을 대상으로 패턴 매칭 기능을 제공
정규 표현식 생성
flag
flag meaning g 전역탐색 (g가 없을 경우엔 첫번째 패턴까지만 검색함) i 대소문자 구분X m 여러줄에 걸쳐 탐색 u 패턴을 유니코드 포인트의 시퀀스로 간주 y 대상문자열의 현재 위치에서의 탐색 시작 패턴
pattern meaning A{1,2} A가 최소 1번, 최대 2번 반복 A{2} A가 2번 반복 A{2,} A가 최소 2번 반복 A+ A가 최소 한번 반복 A?B A가 최대한번 반복되고 B가 이어짐 A B [AB]+ A 또는 B가 1번 이상 반복 [A-Za-z]+ A-Z 또는 a-z(알파벳) 가 1번 이상 반복 [0-9]+ [\d]+ 숫자가 한번 이상 반복 [\D]+ 숫자가 아닌 문자가 한번 이상 반복 [\w,]+ 알파벳, 숫자, 언더스코어, ' , ' 가 한번 이상 [\W]+ 알파벳,숫자,언더스코어 아닌 문자 하나 이상 [^0-9]+ 0-9가 아닌 문자 하나 이상 ^https https로 시작하는지 com$ com으로 끝나는지 ^[\s]+ 여러가지 공백문자([\t\r\n\v\f]를 의미)로 시작하는지 [0-9a-zA-Z]* 숫자 또는 알파벳이 0번 이상 메서드
RegExp.prototype.exec : 매칭 결과를 배열로 반환
const target = 'Is this all there is?'; const regExp = /is/; regExp.exec(target); // expected // ["is", index:5, input:"Is this all there is?", groups:undefined]
- 매칭 결과가 없는 경우 null
- g 플래그를 지정해도 첫번째 매칭 결과만 반환
RegExp.prototype.test : 매칭 결과를 불리언으로 반환
const target = 'Is this all there is?'; const regExp = /is/; regExp.test(target); // expected // true
String.prototype.match : 매칭 결과를 배열로 반환
const target = 'Is this all there is?'; const regExp = /is/g; target.match(regExp); // expected // ["is", "is"]
- exec와 다르게 g플래그를 붙이면 전체 문자열을 탐색
String.prototype.replace : 정규표현식 패턴의 문자를 대체
const target = 'abc#123'; // 대소문자 구분없이 숫자 또는 알파벳이 아닌 문자(특수문자)으로 시작 const regExp = /[^0-9A-Za-z]/gi; target.replace(regExp, ''); // expected // abc123
참고 : Javascript deep dive 31장
'Language > Javascript' 카테고리의 다른 글
[JavaScript] 비동기 함수가 뭔데 (0) 2024.11.24