javascript/모던 자바스크립트 Deep Dive

정규 표현식(Regular Expression)

yongfront 2024. 2. 21. 02:35
반응형
SMALL

정규 표현식(Regular Expression)은 문자열에서 특정 문자 조합을 찾기 위해 사용되는 패턴입니다. 자바스크립트와 같은 많은 프로그래밍 언어에서 문자열 처리에 매우 유용하게 사용됩니다. 정규 표현식을 사용하면 복잡한 검색, 대체, 추출 작업을 간단하게 수행할 수 있습니다.

기본 구문

  • /pattern/flags: 정규 표현식은 슬래시(/)로 시작하고 끝나며, 선택적인 플래그를 사용할 수 있습니다.
    • g: 전역 검색 (문자열 내의 모든 패턴 매칭)
    • i: 대소문자 구분 없이 매칭
    • m: 여러 줄 매칭

주요 메타 문자

  • .: 임의의 한 문자와 일치
  • ^: 문자열의 시작
  • $: 문자열의 끝
  • *: 0회 이상 반복
  • +: 1회 이상 반복
  • ?: 0회 또는 1회
  • \\s: 공백 문자
  • \\S: 공백이 아닌 문자
  • \\d: 숫자
  • \\D: 숫자가 아닌 문자
  • [abc]: 괄호 안의 어떤 문자와도 일치 (예: 'a', 'b', 'c')
  • [^abc]: 괄호 안의 어떤 문자와도 일치하지 않음
  • (xyz): 캡처 그룹

예제

이메일 주소 검증

let emailPattern = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;
console.log(emailPattern.test("example@example.com")); // 출력: true

URL 검증

let urlPattern = /^(https?):\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+~#?&//=]*)$/;
console.log(urlPattern.test("<https://www.example.com>")); // 출력: true

공백 제거하기

let stringWithSpaces = " Hello, World! ";
let trimmedString = stringWithSpaces.replace(/^\\s+|\\s+$/g, '');
console.log(trimmedString); // 출력: "Hello, World!"

숫자만 추출하기

let stringWithNumbers = "Your total is 120 dollars";
let numbers = stringWithNumbers.match(/\\d+/g).map(Number);
console.log(numbers); // 출력: [120]

비밀번호 복잡성 검증

let passwordPattern = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
console.log(passwordPattern.test("Password1")); // 출력: true

이 패턴은 최소 8자 이상이며, 적어도 하나의 숫자, 하나의 소문자, 그리고 하나의 대문자를 포함해야 합니다.

정규 표현식은 매우 강력하지만 복잡할 수 있으므로, 사용하기 전에 각 패턴이 무엇을 의미하는지 정확히 이해하는 것이 중요합니다. 연습을 통해 다양한 패턴을 만들고 테스트해보세요.

728x90
반응형
LIST