현재 위치: > 최신 기사 목록> preg_replace_callback_array 함수를 사용하여 여러 정규 표현식과 일치하는 내용을 교체하는 방법은 무엇입니까?

preg_replace_callback_array 함수를 사용하여 여러 정규 표현식과 일치하는 내용을 교체하는 방법은 무엇입니까?

M66 2025-05-17

PHP에서 preg_replace_callback_array 함수는 여러 정규 표현식을 동시에 일치시키고 일치하는 컨텐츠를 교체 할 수있는 매우 실용적인 도구입니다. 이 기능은 여러 정규 교체 작업을 동시에 처리 해야하는 코드를 크게 단순화 할 수 있습니다. 이 기사에서는 Preg_replace_callback_array 함수를 사용하는 방법에 대해 설명합니다. 특히 여러 정규 표현식과 일치하는 콘텐츠를 동시에 교체 해야하는 경우.

preg_replace_callback_array 함수는 무엇입니까?

preg_replace_callback_array 함수는 PHP 5.3.0 후에 도입되었습니다. 이 기능은 preg_replace_callback 함수와 유사하지만 동시에 여러 정규식을 처리하는 것이 지원됩니다. 기능 프로토 타입은 다음과 같습니다.

 preg_replace_callback_array(array $patterns, string $subject);
  • $ 패턴 : 키가 정규식이고 값은 콜백 함수 인 연관 배열입니다.

  • $ 제목 : 일치하고 교체 할 입력 문자열.

예 : preg_replace_callback_array 함수를 사용하여 여러 교체를합니다

여러 가지 다른 유형의 URL 및 날짜 형식을 포함하는 문자열이 있다고 가정 하고이 URL과 날짜를 동시에 교체해야합니다. 다음은 preg_replace_callback_array 함수를 사용하는 예입니다.

 <?php

// 문자열을 입력하십시오
$text = "Visit our website at http://example.com for more info. Also, the event is on 2023-04-21.";

// 콜백 함수를 정의합니다
$patterns = [
    '/http(s)?:\/\/([^\/]+)/' => function ($matches) {
        // 바꾸다URL도메인 이름은입니다 m66.net
        return "http://" . 'm66.net' . substr($matches[0], strlen($matches[1]) + strlen($matches[2]) + 3);
    },
    '/\d{4}-\d{2}-\d{2}/' => function ($matches) {
        // 바꾸다日期格式
        return str_replace("-", "/", $matches[0]);
    }
];

// 사용 preg_replace_callback_array 函数进行多个바꾸다
$result = preg_replace_callback_array($patterns, $text);

// 출력 결과
echo $result;

?>

코드 설명 :

  1. 입력 문자열 : URL 및 날짜를 ​​포함하는 텍스트.

  2. 정규 표현 :

    • 첫 번째 일반 /http (s)? : \/\/([^\/]+)/는 URL과 일치하는 데 사용됩니다.

    • 두 번째 일반 / \ d {4}-\ d {2}-\ d {2} /는 날짜 (예 : 2023-04-21 )와 일치하는 데 사용됩니다.

  3. 콜백 함수 :

    • URL의 경우 도메인 이름 부분을 m66.net 으로 바꾸고 경로 부분을 변경하지 않습니다.

    • 날짜의 경우, 우리는 - / 로 대체하여 날짜 형식을 2023/04/21 로 변환합니다.

  4. 결과 출력 : 교체 된 텍스트의 최종 출력.

산출:

 Visit our website at http://m66.net for more info. Also, the event is on 2023/04/21.

주목해야 할 것

  • preg_replace_callback_array를 사용할 때는 정규 표현식의 각 콜백 함수가 대체 값을 반환 할 수 있도록해야합니다.

  • preg_replace_callback_array는 정규 표현식 순서대로 일치하고 대체하므로 정규 표현이 충돌하지 않도록하십시오.

  • 복잡한 교체 작업이 필요한 경우 콜백 기능은 일반 일치하는 컨텐츠를 기반으로 유연하게 처리 할 수 ​​있기 때문에 필수적입니다.

이러한 방식으로 Preg_replace_callback_array를 사용하면 여러 정규 표현식 교체 작업을 효율적으로 처리 할 수 ​​있으며 코드는 더 간결하고 이해하기 쉽습니다. 이 기사 가이 기능을 사용하여 여러 정규 경기를 동시에 대체하는 방법을 이해하는 데 도움이되기를 바랍니다.