정규표현식을 사용하여 "숫자, 숫자, 숫자..." 패턴 찾아내기

마데슾 : My Dev Space·2021년 8월 17일
2

정규표현식

목록 보기
1/1
post-thumbnail

정규 표현식이란?

정규 표현식은 주어진 문자열에서 발견할 수 있는 글자 패턴을 표현한 식입니다.

사용한 표현식

const check_num = /^([0-9]+,)+[0-9]+$/;

check_num.test('1111,22222,33'); // true
check_num.test('1111,22222,33,'); // false
  • ( 반복되는 숫자 + , ) 그룹 반복
    • 반복되는 숫자 ? ⇒ 11,111,22,2222...
  • 마지막은 , 없이 숫자 반복으로 끝난다는 의미

메타 문자

메타 문자는 정규식 엔진에게 어떤 단일 문자를 매칭할 지 알려주는 역할의 특수문자입니다.

그룹화(Grouping)

표현식의 일부를 그룹화 할 수 있습니다

const str = '22222,3,11';

str.mathch(/d);

1번 이상 일치(+)

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)

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"]

앵커(Anchor, ^, $)

앵커의 종류로는 크게 패턴 시작 앵커와 패턴 종료 앵커가 있습니다.

👉🏻 사용 예시 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문을 돌고... 생각만해도 복잡한 과정을 거쳐야 원하는 결과값을 얻었을텐데 😔

정규 표현식이 있어서 정말 다행이라는 생각이 들었습니다.

참고글

profile
👩🏻‍💻 🚀

0개의 댓글