0Pricing
PHP Academy · 강의

preg_match로 일치 확인하기

문자열을 패턴과 비교하고 캡처 그룹을 가져옵니다.

preg_match로 일치 확인하기은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

preg_match() 시그니처

preg_match($pattern, $subject, &$matches)는 패턴이 일치하면 1, 일치하지 않으면 0, 오류가 발생하면 false를 반환합니다.

간단한 일치 테스트

preg_match를 불리언 테스트로 사용합니다. 반환값 1은 찾았다는 뜻입니다.

<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
    echo "Looks like an email";
}

$matches를 사용한 캡처 그룹

$matches[0]은 전체 일치 결과이고, $matches[1], $matches[2]...는 캡처 그룹입니다.

<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"

이름이 지정된 캡처

(?P<name>...)을 사용하여 이름이 지정된 캡처 그룹을 만들며, $matches["name"]으로 접근합니다.

<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
           '2025-06-15', $m);
echo $m['year'];  // 2025

오프셋 매개변수

네 번째 매개변수는 문자열에서 일치를 시작할 위치를 지정합니다(바이트 오프셋).

<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"

PREG_OFFSET_CAPTURE

일치한 값과 바이트 오프셋을 모두 가져옵니다.

<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)

preg_match_all()

preg_match_all()은 모든 일치 항목을 찾고 그 개수를 반환합니다.

<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]

이메일 검증 예제

실용적인 이메일 정규식:

<?php
function isEmail(string $s): bool {
    return (bool) preg_match(
        '/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
        $s
    );
}

전화번호 검증

국제 전화번호를 검증합니다:

<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);

오류 처리

패턴이 유효하지 않으면 preg_match()는 false를 반환합니다. === false로 확인하고 자세한 내용은 preg_last_error()를 사용하여 확인합니다.

성능 팁

PHP는 컴파일된 PCRE 패턴을 내부적으로 캐시하므로 반복문에서 같은 정규식을 사용해도 추가 작업이 필요하지 않습니다.

정규식을 사용하지 말아야 할 때

구조화된 데이터에는 PHP 전용 함수가 있습니다: filter_var(FILTER_VALIDATE_EMAIL), parse_url(). 직접 작성한 정규식보다 이러한 함수를 우선 사용합니다.

빠른 확인

preg_match 실행 후 $matches[0]에는 무엇이 들어 있나요?

자주 묻는 질문

“preg_match로 일치 확인하기” 강의는 무료인가요?

네 — “preg_match로 일치 확인하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“preg_match로 일치 확인하기”에서 뭘 배우나요?

문자열을 패턴과 비교하고 캡처 그룹을 가져옵니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“preg_match로 일치 확인하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 정규식 문법 기초
  2. preg_match로 일치 확인하기
  3. preg_replace로 텍스트 바꾸기
  4. 분할 및 실전 패턴
← PHP Academy(으)로 돌아가기