정규 표현식은 주어진 문자열에서 발견할 수 있는 글자 패턴을 표현한 식입니다.
const check_num = /^([0-9]+,)+[0-9]+$/;
check_num.test('1111,22222,33'); // true
check_num.test('1111,22222,33,'); // false
,
) 그룹 반복,
없이 숫자 반복으로 끝난다는 의미메타 문자는 정규식 엔진에게 어떤 단일 문자를 매칭할 지 알려주는 역할의 특수문자입니다.
표현식의 일부를 그룹화 할 수 있습니다
const str = '22222,3,11';
str.mathch(/d);
1번 이상 일치하는지 판단할 수 있습니다
👉🏻 사용 예시
const str = '1, 2, 3, 44444';
str.match(/[0-9]+/g); // ["1", "2", "3", "44444"]
str.match(/([0-9]+,)+/g) // ["1,2,3,"]
str.match(/([0-9]+,)+[0-9]+/g) // ["1,2,3,44444"]
10진수 문자(Digit Character, \d, \D)를 사용하면 문자 그룹([0-9])을 \\d
로 대체할 수 있습니다
👉🏻 사용 예시
str.match(/([0-9]+,)+[0-9]+/g) // ["1,2,3,44444"]
str.match(/(\\d+,)+\\d+/g) // ["1,2,3,44444"]
앵커의 종류로는 크게 패턴 시작 앵커와 패턴 종료 앵커가 있습니다.
👉🏻 사용 예시 1
/^!/.test('!aaa') // true
/^!/.test('?aaa') // false
/!$/.test('aaa!') // true
👉🏻 사용 예시 2
가장 마지막은 ,
없이 숫자
만 반복됩니다
const str = '1, 2, 3, 44444';
str.match(/(\\d+,)+\\d+$/g) // ["1,2,3,44444"]
정규 표현식을 사용하니 복잡한 패턴의 문자열을 간단하게 추출할 수 있습니다
정규 표현식을 몰랐더라면 문자열을 자르고 추출하고 for문을 돌고... 생각만해도 복잡한 과정을 거쳐야 원하는 결과값을 얻었을텐데 😔
정규 표현식이 있어서 정말 다행이라는 생각이 들었습니다.