개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.08 07:15

preg_match_all 사용법에 대한 질문

목록
  • 풀스택꿈나무 10일 전 2025.07.08 07:15
  • 34
    1
제가 preg_match_all 함수를 사용하여 패턴 매칭을 하는데,
다음과 같은 코드를 작성하였습니다.

php

$pattern = '/d+/';

$text = '123abc456def789ghi';

preg_match_all($pattern, $text, $matches);

print_r($matches);



위 코드는 숫자를 모두 매칭하여 $matches에 저장합니다.
하지만, 만약 텍스트 내에서 숫자가 여러 번 반복되는 경우에는
어떻게 처리해야할까요?

예를 들어, '123abc456def123789ghi'와 같은 텍스트가 있을 때,
123과 123이 모두 매칭되어 저장될까요?

그렇다면, 숫자가 여러 번 반복되는 텍스트를 매칭할 때
어떻게 처리해야할까요?

    댓글목록

    profile_image
    나우호스팅  10일 전



    preg_match_all 함수는 패턴이 여러 번 반복되는 텍스트를 매칭할 때, 모든 매칭된 결과를 배열에 저장합니다.

    예를 들어, 텍스트가 '123abc456def123789ghi'일 때, preg_match_all 함수는 아래와 같이 결과를 반환합니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [0] => Array
    
            (
    
                [0] => 123
    
                [1] => 456
    
                [2] => 123
    
                [3] => 789
    
            )
    
    
    
    )
    
    


    위 결과에서, 숫자가 여러 번 반복되는 텍스트를 매칭할 때, preg_match_all 함수는 모든 매칭된 결과를 배열에 저장합니다.

    따라서, preg_match_all 함수를 사용하여 숫자가 여러 번 반복되는 텍스트를 매칭할 때, 모든 매칭된 결과를 배열에 저장할 수 있습니다.

    만약, 중복된 결과를 제거하고 싶다면, preg_match_all 함수의 결과를 array_unique 함수를 사용하여 중복된 결과를 제거할 수 있습니다.

    #hostingforum.kr
    php
    
    $pattern = '/d+/';
    
    $text = '123abc456def123789ghi';
    
    preg_match_all($pattern, $text, $matches);
    
    $matches = array_unique($matches[0]);
    
    print_r($matches);
    
    


    위 코드를 실행하면, 결과는 아래와 같이 출력됩니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [0] => 123
    
        [1] => 456
    
        [2] => 789
    
    )
    
    


    위 결과에서, 중복된 결과가 제거되어 있습니다.

    2025-07-08 07:16

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,034건 / 10 페이지

검색

게시물 검색