정규표현식

Dongs·2023년 3월 5일
0

Algoristhms

목록 보기
4/6

정규표현식이란?

  • 정규식이라고도 불리며 특정 문자 조합을 찾기 위한 패턴이다!

JavaScript 에서는 다음과 같은 String 메소드와 함께 쓸 수 있다.

  1. match(/[0-9]/) 숫자 0~9 사이에 해당하는 첫 번째 문자열을 찾아준다.
  2. matchAll(/[0-9]/) 숫자 0~9 사이의 문자열을 모두 찾아준다.
  3. replace(/[0-9]/," ") 숫자 0~9 사이에 해당하는 첫 번째 문자열을 찾아 공백으로 대체한다.
  4. replaceAll(/[0-9]/," ") 숫자 0~9 사이의 문자열을 모두 찾아 공백으로 대체한다.
  5. split(/[0~9]/) 문자열을 숫자 0~9 를 기준으로 쪼개서 배열로 리턴한다.

JavaScript 에서는 정규식은 객체에 해당하며, RegExp 의 test()메소드를 사용할 수 있다.

또한

/ab+c/i
new RegExp(/ab+c/, 'i') // 리터럴
new RegExp('ab+c', 'i') // 생성자

RegExp 의 리터럴 표기법과 생성자 표기법이 있다. 리터럴 표기법은 정규식이 프로그램 상 변하지 않을 때, 즉 정적일 때 사용하고 생성자 표기법은 정규식이 동적으로 변할 때 사용한다!

정리하게 된 계기

  • 이번 프로그래머스 프론트엔드 Dev 매칭에서 정규식 관련하여 푸는 것이 있었다..
    구글링이 가능하였지만 코딩테스트용 정규식 [0-9], [a-z] 같은 간단한 것 밖에 몰랐던 나는 구글링을 해도 문제를 풀어나가는데에 어려움이 조금 있었다! 보통 정규식은 현업에서도 필요한 것만 찾아서 구글링을 한다 하지만 찾는 것도 조금이라도 알아야 찾을 수 있을 것 같아서 정리하게 되었다!

정규표현식에 사용되는 문자들

  • 주로 쓰이는 것들을 간단하게 정리해보았다.
정규식설명
^정규식의 첫 번째 그룹 및 문자열 탐색의 의미
$정규식의 마지막 그룹 및 문자열 탐색의 의미
.공백을 포함한 전체 문자
.특수문자 .
\s공백
\S공백을 제외한 모든 문자
()그룹핑
(?=)캡쳐링을 스킵한 그룹핑
*뒤에 문자가 있어도 되고 없어도 됨
{2}앞에 있는 정규식에 매치된 문자열이 2개
{2,}2개 그 이상
{2,6}2~6개
[0-9]0~9에 해당하는 숫자
[a-z]a~z에 해당하는 문자
[A-Z]A~Z에 해당하는 문자
[^0-9]만약 대괄호 안에 ^ 문자가 있다면 부정을 의미함. (!)

실제 정규식 사용 예

  • 비밀번호 효율성 검사

(한 개 이상의 !@~.의 특수문자, 한 개 이상의 영어 대소문자, 한 개 이상의 숫자를 포함해야 하며 비밀번호 길이는 8~20으로 제한함)

let reg = /(?=.*[a-zA-Z])(?=.*[!@~])(?=.*[0-9]).{8,20}$/

정규표현식 테스트 사이트

  • 정규표현식에 대해 알아보다가 작성한 정규식에 매칭되는 문자열이 뭐가 있고 작성한 정규표현식이 어떤 것을 매칭해주는지 알려주는 좋은 사이트가 있었다.

https://regexr.com/

profile
자대고 css 하는 프론트엔드 개발자

0개의 댓글