RegExp

HanSungUk·2022년 8월 16일
0

JS_Books

목록 보기
15/15
post-thumbnail

5.4 OR 검색

|는 or의 의미를 갖습니다. 다음 예제의 /A!B/는 'A' 또는 'B'를 의미합니다.

const target = 'A AA B BB Aa Bb';

// 'A' 또는 'B'를 전역 검색한다.
const regExp = /A|B/g;

target.match(regExp); // ['A', 'A', 'A', 'B', 'B', 'B', 'A', 'B']

분해되지 않는 단어 레벨로 검색하기 위해서 +를 함께 사용합니다.

const target = 'A AA B BB Aa Bb';

// 'A' 또는 'B'가 한 번 이상 반복되는 문자열을 전역 검색합니다.
// 'A', 'AA', ... 'B', 'BB'
const regExp = /A+|B+/g;

target.match(regExp); // ['A', 'AA', 'B', 'BB', 'A', 'B']

위 예제를 더 간단하게 표현하면 다음과 같습니다.

[]내의 문자는 or로 동작합니다.

const target = 'A AA B BB Aa Bb';

// 'A' 또는 'B'가 한 번 이상 반복되는 문자열을 전역 검색합니다.
// 'A', 'AA', ... 'B', 'BB'
const regExp = /[AB]+/g;

target.match(regExp); // ['A', 'AA', 'B', 'BB', 'A', 'B']

범위를 지정하려면 []내에 -를 사용합니다. 다음의 경우는 대문자 알파벳을 검색합니다.

const target = 'A CC B BB Aa Bb ZZ D';

// 'A' ~ 'Z'가 한 번 이상 반복되는 문자열을 전역 검색합니다.
// 'A', 'AA', ... 'B', 'BB', ... 'Z', 'ZZ', ... 
const regExp = /[A-Z]+/g;

target.match(regExp); // ['A', 'CC', 'B', 'BB', 'A', 'B', 'ZZ', 'D']

대소문자를 구별하지 않고 알파벳을 검색하면 다음과 같습니다.

const target = 'A CC B 12 Aa Bb ZZ D 0';

// 'A' ~ 'Z'가 한 번 이상 반복되는 문자열을 전역 검색합니다.
// 'A', 'AA', ... 'B', 'BB', ... 'Z', 'ZZ', ... 
const regExp = /[A-Za-z]+/g;

target.match(regExp); // ['A', 'CC', 'B', 'Aa', 'Bb', 'ZZ', 'D']

숫자를 검색하는 방법은 다음과 같습니다.

const target = 'A CC B 12 Aa 123 D 0 1.23';

// '0' ~ '9'가 한 번 이상 반복되는 문자열을 전역 검색합니다.

const regExp = /[0-9]+/g;

target.match(regExp); // ['12', '123', '0', '1', '23']

소수점을 패턴에 포함시키는 방법은 다음과 같습니다.

const target = 'A CC B 12 Aa 123 D 0 1.23';

// '0' ~ '9'가 한 번 이상 반복되는 문자열을 전역 검색합니다.

const regExp = /[0-9.]+/g;

target.match(regExp); // ['12', '123', '0', '1.23']

위의 예제들을 간단히 표현하는 방법은 다음과 같습니다.

\d는 숫자를 의미합니다. \D는 숫자가 아닌 문자를 의미합니다.

const target = 'A CC B 12 Aa 123 D 0 1.23';

// '0' ~ '9'가 한 번 이상 반복되는 문자열을 전역 검색합니다.

const regExp = /[\d.]+/g;

target.match(regExp); // ['12', '123', '0', '1.23']

const regExp = /[\D]+/g;
target.match(regExp); // ['A CC B ', ' Aa ', ' D ', ' ', '.']

\w는 알파벳, 숫자, 언더스코어를 의미합니다. 즉, \w는 [A-Za-z0-9_]와 같습니다. \W와 \w는 반대로 동작합니다. 즉, \W는 알파벳, 숫자, 언더스코어가 아닌 문자를 의미합니다.

const target = 'Aa Bb 12.345 _$%';

// 알파벳, 숫자, 언더스코어, '.'가 한 번 이상 반복되는 문자열을 전역 검색한다.
const regExp = /[\w.]+/g;
target.match(regExp) // ['Aa', 'Bb', '12.345', '_']

const regExp = /[\W.]+/g;
target.match(regExp) // [' ', ' ', '.', ' ', '$%']

5.5 NOT 검색

[...] 내의 ^은 not의 의미를 갖습니다.

const target = 'Aa BB 11 CA 0'

// 숫자를 제외한 문자열을 전역 검색한다.
const regExp = /[^0-9]+/g;

target.match(regExp); // ['Aa BB ', ' CA ']

[0-9] === /d
[^0-9] === /D
[A-Za-z0-9_] === /w
[^A-Za-z0-9_] === /W

5.6 시작 위치로 검색

[...] 밖의 ^은 문자열의 시작을 의미합니다.
단, [...] 내의 ^은 not의 의미를 가집니다.

const target = 'https://deepdive.com';

// 'https'로 시작하는지 검사한다.
const regExp = /^https/;
regExp.test(target); // true

5.7 마지막 위치로 검색

$은 문자열의 마지막을 의미합니다.

const target = 'https://deepdive.com';

// 'com'로 끝나는지 검사한다.
const regExp = /com$/;
regExp.test(target); // true

0개의 댓글