자바스크립트 정규 표현식의 문자 클래스
한 번에 문자 그룹 전체를 선택할 수 있는 특별한 명령어들이 있습니다.
\d 명령어는 0부터 9까지의 숫자를 의미합니다.
\w 명령어는 숫자, 라틴 문자 또는 밑줄 문자를 나타냅니다.
\s 명령어는 공백 또는 공백 문자(스페이스, 줄 바꿈, 탭)를 나타냅니다.
명령어의 의미를 반전시키려면 대문자를 쓰면 됩니다: 예를 들어, \d가 숫자라면,
\D는 숫자가 아닌 문자입니다.
예제
모든 숫자를 찾아봅시다:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'! !! !!!'
예제
반복 연산자는 문자 클래스 명령어를 하나의 단위로 취급하므로, 그룹화 괄호가 필요 없습니다.
다음 예제에서 검색 패턴은 다음과 같습니다: 0부터 9까지의 숫자가 한 번 이상:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'! ! ! abc @@@'
예제
다음 예제에서 검색 패턴은 다음과 같습니다:
0부터 9까지의 숫자가 아닌 문자가 한 번 이상:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'123!3!'
예제
이 예제에서 검색 패턴은 다음과 같습니다: 공백 문자 한 번:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'1!12!123!abc!@@@'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
공백 문자가 아닌 문자가 한 번 이상.
공백으로 구분된 모든 부분 문자열이 '!'로 교체됩니다:
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'! ! ! ! !'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
숫자 또는 문자가 한 번 이상.
숫자와 문자로 구성된 모든 부분 문자열이 '!'로 교체됩니다:
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'! ! ! ! @@@'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
숫자도 아니고 문자도 아닌 문자가 한 번 이상.
이 정의에 따라 우리의 경우 '@@@'와 모든 공백(공백도 숫자나 문자가 아니기 때문)이 해당됩니다.
마지막에 하나의 '!'가 있다는 점에 유의하세요 — 그것은 앞에 공백이 있는 문자열 ' @@@'가 변환된 것입니다:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'1!12!123!Abc!'
실습 문제
다음 문자열이 주어집니다:
let str = 'a1a a2a a3a a4a a5a aba aca';
다음 조건을 만족하는 문자열을 찾는 정규식을 작성하세요:
양쪽 끝에 문자 'a'가 있고, 그 사이에 숫자 하나가 있는 문자열.
다음 문자열이 주어집니다:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
다음 조건을 만족하는 문자열을 찾는 정규식을 작성하세요:
양쪽 끝에 문자 'a'가 있고, 그 사이에 임의의 개수의 숫자가 있는 문자열.
다음 문자열이 주어집니다:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
다음 조건을 만족하는 문자열을 찾는 정규식을 작성하세요:
양쪽 끝에 문자 'a'가 있고, 그 사이에 임의의 개수의 숫자(0개 포함, 즉 문자열 'aa'도 가능)가 있는 문자열.
다음 문자열이 주어집니다:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
다음 패턴의 문자열을 찾는 정규식을 작성하세요:
양쪽 끝에 문자 'a'와 'b'가 있고, 그 사이에 숫자도 아니고 공백도 아닌 문자가 있는 문자열.
다음 문자열이 주어집니다:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
다음 패턴의 문자열을 찾는 정규식을 작성하세요:
양쪽 끝에 문자 'a'와 'b'가 있고, 그 사이에 문자도, 숫자도, 공백도 아닌 문자가 있는 문자열.
다음 문자열이 주어집니다:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
모든 공백을 '!'로 교체하는 정규식을 작성하세요.