IMCAT.DEV
로그인 가입
PHP 입문 문법

PHP 정규 표현식 기초

PHP 정규 표현식 기초 — 초급

정규 표현식 기초

1. 도입 (왜 배워야 하는가)

정규 표현식(Regular Expression, Regex)은 문자열 검색 및 조작을 위해 매우 강력한 도구입니다. 웹 개발, 데이터 처리, 텍스트 분석 등 다양한 실무 환경에서 자주 사용됩니다. 예를 들어, 사용자가 입력한 이메일 주소가 유효한 형식인지 검증하거나, 대량의 텍스트에서 특정 패턴을 찾는 등의 작업에서 필수적입니다. 만약 정규 표현식을 모른다면, 복잡한 문자열 처리 작업을 수작업으로 해야 하며, 이는 효율성과 정확성을 크게 떨어뜨립니다.

2. 핵심 개념 설명

정규 표현식은 특정 패턴을 정의하고 이를 사용하여 문자열을 검색하거나 대체하는 방법입니다. 다음은 주요 개념입니다:

  • 패턴: 찾고자 하는 문자열의 형태를 정의합니다. 예를 들어, 전화번호, 이메일 주소 등.
  • 메타 문자: 특정 기능을 가진 문자로, 예를 들어 .(모든 문자), *(이전 문자의 0회 이상 반복) 등이 있습니다.
  • 플래그: 정규 표현식의 동작 방식을 변경하는 옵션으로, 예를 들어 대소문자 구분을 설정할 수 있습니다.
  • 용어설명
    패턴찾고자 하는 문자열 형태 정의
    메타 문자특정 기능을 가진 문자
    플래그정규 표현식 동작 방식을 변경하는 옵션

    3. 기본 코드 예제

    가장 기본적인 정규 표현식 사용법을 보여주는 코드입니다. 아래 코드는 문자열에서 숫자를 찾는 예제입니다.

    <?php
    $pattern = '/\d+/'; // 숫자를 찾기 위한 정규 표현식
    $string = '나는 2023년에 PHP를 배우고 있습니다.';
    
    if (preg_match($pattern, $string, $matches)) {
        echo "찾은 숫자: " . $matches[0]; // 찾은 숫자를 출력
    } else {
        echo "숫자가 없습니다."; // 숫자가 없을 경우
    }
    ?>

    위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

    찾은 숫자: 2023
  • $pattern = '/\d+/';: 숫자를 찾기 위한 정규 표현식을 정의합니다. \d는 숫자를 의미하며, +는 1회 이상 반복을 의미합니다.
  • $string = '나는 2023년에 PHP를 배우고 있습니다.';: 검색할 문자열을 정의합니다.
  • preg_match($pattern, $string, $matches): 주어진 문자열에서 패턴과 일치하는 부분을 찾습니다. 일치하는 부분이 있으면 $matches 배열에 저장됩니다.
  • echo "찾은 숫자: " . $matches[0];: 찾은 숫자를 출력합니다.
  • 4. 실전 활용 예제

    1. 이메일 주소 검증: 사용자 입력을 받을 때 유효한 이메일 형식인지 확인합니다.
    2.    <?php
         $emailPattern = '/^[\w\.-]+@[\w\.-]+\.\w+$/';
         $email = '[email protected]';
      
         if (preg_match($emailPattern, $email)) {
             echo "유효한 이메일입니다.";
         } else {
             echo "유효하지 않은 이메일입니다.";
         }
         ?>

      - 이메일 주소가 유효한 형식인지 검증합니다.

    3. 전화번호 형식 검사: 특정 형식의 전화번호가 맞는지 확인합니다.
    4.    <?php
         $phonePattern = '/^\d{3}-\d{3}-\d{4}$/';
         $phone = '010-1234-5678';
      
         if (preg_match($phonePattern, $phone)) {
             echo "유효한 전화번호입니다.";
         } else {
             echo "유효하지 않은 전화번호입니다.";
         }
         ?>

      - 특정 형식(예: 010-1234-5678)의 전화번호가 맞는지 확인하는 예제입니다.

      5. 흔한 실수와 주의사항

    5. 정규 표현식의 구문 오류: 메타 문자를 잘못 사용할 경우 오류가 발생할 수 있습니다.
    6. - 잘못된 코드: '/[0-9' - 올바른 코드: '/[0-9]/'

    7. 플래그 누락: 대소문자를 구분하지 않으려면 i 플래그를 추가해야 합니다.
    8. - 잘못된 코드: '/abc/' - 올바른 코드: '/abc/i'

      6. 정리

    9. 정규 표현식은 문자열 검색 및 조작에 필수적인 도구입니다.
    10. 기본적인 패턴, 메타 문자, 플래그 개념을 이해해야 합니다.
    11. 실무에서 이메일 검증, 전화번호 형식 검사 등 다양한 상황에서 활용됩니다.
    12. 다음 주제로는 정규 표현식의 고급 사용법(예: 긍정형 및 부정형 전방 탐색)을 추천합니다.