English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 강의

PHP 고급 강의

PHP & MySQL

PHP 참조 설명서

PHP preg_match_all() 함수 사용법 및 예제

PHP 정규 표현식 (PCRE)

preg_match_all 함수는 전체 정규 표현식 일치를 수행합니다.

문법

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

subject에서 pattern에 일치하는 모든 일치 결과를 검색하고, flag로 지정된 순서로 matches에 출력합니다.

첫 번째 일치가 발견된 후, 서브시퀀스는 마지막 일치 위치에서 다시 검색합니다.

파라미터 설명:

  • $pattern: 검색할 패턴, 문자열 형식.

  • $subject: 입력 문자열.

  • $matches: 다차원 배열, 모든 일치 결과를 출력 매개변수로 사용합니다. 배열 정렬은 flags로 지정됩니다.

  • $flags: 아래 표시와 함께 사용할 수 있습니다(주의: PREG_PATTERN_ORDER와 PREG_SET_ORDER는 동시에 사용할 수 없습니다):

  • PREG_PATTERN_ORDER: 결과는 $matches[0]이 전체 패턴의 모든 일치를 저장합니다. $matches[1] 첫 번째 서브그룹의 모든 일치를 저장합니다. 이를 통해 계속 합니다.

  • PREG_SET_ORDER: 결과는 $matches[0]이 첫 번째 일치로 얻은 모든 일치(서브그룹 포함)를 포함합니다. $matches[1이는 두 번째로 일치하는 모든 일치(서브그룹 포함)를 포함하는 배열입니다. 이를 통해 계속 합니다.

  • PREG_OFFSET_CAPTURE: 이 표시가 전달되면, 매칭이 발견될 때마다 목표 문자열에 대한 상대적인 이동량이 증가합니다.

  • offset: 일반적으로, 탐색에서 목표 문자열의 시작 위치에서 시작합니다. 선택 사항 offset은 목표 문자열에서 지정된 위치에서 검색을 시작하는 데 사용됩니다(단위는 바이트입니다).

반환 값

전체 매칭 횟수를 반환합니다(가능한 경우 0), 또는 오류가 발생하면 FALSE를 반환합니다.

온라인 예제

<?php
$userinfo = "Name: <b>PHP</b> <br> 제목: <b>프로그래밍 언어</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>

출력 결과는 다음과 같습니다:

Array
(
    [0] => <b>PHP</b>
    [1] => <b>프로그래밍 언어</b>
)
<?php
//\",2이는 pcre가 정규 표현식의 두 번째 괄호(여기서는 ([\w+))
//좌표된 결과. 여기서 두 개의 역문자는 여기서 양쪽 단락을 사용했기 때문입니다.
$html = "<b>강조 텍스트</b><a href=howdy.html>클릭하세요</a>";
preg_match_all("/(<([\w+)[^>]*>)(.*/\",2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
    echo "matched: " . $val[0] . "\n";
    echo "part 1: " . $val[1] . "\n";
    echo "part 2: " . $val[2] . "\n";
    echo "part 3: " . $val[3] . "\n";
    echo "part 4: " . $val[4]. "\n\n";
}
?>

출력 결과는 다음과 같습니다:

matched: <b>강조 텍스트</b>
part 1: <b>
part 2: b
part 3: 강조 텍스트
part 4: </b>
matched: <a href=howdy.html>클릭하세요</a>
part 1: <a href=howdy.html>
part 2: a
part 3: 클릭하세요
part 4: </a>

PHP 정규 표현식 (PCRE)