정규식(PCRE) preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — 정규식 검색을 수행하고 콜백을 사용하여 바꾸기


설명

preg_replace_callback_array(
    array $pattern,
    string|array $subject,
    int $limit = -1,
    int &$count = null,
    int $flags = 0
): string|array|null
                

이 함수의 동작은 콜백이 패턴별로 실행된다는 점을 제외하고 preg_replace_callback()과 유사합니다.


매개변수

pattern
연관 배열 매핑 패턴(키)을 callable(값)에 매핑합니다.
subject
검색하고 바꿀 문자열 또는 문자열이 있는 배열입니다.
limit
subject 문자열의 각 패턴에 대해 가능한 최대 대체. 기본값은 -1(제한 없음)입니다.
count
지정된 경우 이 변수는 수행된 교체 수로 채워집니다.
flags
flags는 일치 배열의 형식에 영향을 미치는 PREG_OFFSET_CAPTUREPREG_UNMATCHED_AS_NULL 플래그의 조합일 수 있습니다. 자세한 내용은 preg_match()의 설명을 참조하십시오.

반환 값

preg_replace_callback_array()subject 매개변수가 배열이면 배열을 반환하고 그렇지 않으면 문자열을 반환합니다. 오류 시 반환 값은 null입니다.

일치하는 항목이 발견되면 새 제목이 반환되고, 그렇지 않으면 subject이 변경되지 않고 반환됩니다.


오류/예외

전달된 정규식 패턴이 유효한 정규식으로 컴파일되지 않으면 E_WARNING이 발생합니다.


변경 로그

버전 설명
7.4.0 flags 매개 변수가 추가되었습니다.

Examples

예제 #1 preg_replace_callback_array() 예제

                  
<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>
                  
                

위의 예는 다음을 출력합니다.

6 matches for "a" found
3 matches for "b" found
                

기타