개발자 Q&A

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

2025.08.05 15:47

mb_ereg_search_getregs와 관련하여 질문내용을 다음과 같이 작성해 보았습니다.

목록
  • 백준도사 13시간 전 2025.08.05 15:47 새글
  • 2
    1
mb_ereg_search_getregs 함수 사용 방법에 대해 질문합니다.

제가 mb_ereg_search_getregs 함수를 사용하여 정규표현식을 검색하였을 때, 검색된 문자열의 위치를 얻을 수 있는 방법을 알고 싶습니다.

제가 사용한 코드는 다음과 같습니다.

php

$pattern = '/d+/';

$str = 'Hello123World456';



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



print_r($matches);



위 코드는 정규표현식으로 숫자를 검색하였을 때, 결과는 다음과 같습니다.

php

Array

(

    [0] => Array

        (

            [0] => 123

            [1] => 456

        )



)



제가 원하는 것은 mb_ereg_search_getregs 함수를 사용하여 얻을 수 있는 결과와 동일한 결과를 얻고 싶습니다.

mb_ereg_search_getregs 함수를 사용하여 검색된 문자열의 위치를 얻을 수 있는 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  13시간 전



    mb_ereg_search_getregs 함수는 preg_match_all 함수와 유사한 기능을 제공합니다. 그러나, preg_match_all 함수는 전체 문자열에서 매치된 문자열의 목록을 반환합니다. 반면, mb_ereg_search_getregs 함수는 매치된 문자열의 목록과 함께, 매치된 문자열의 시작 위치와 끝 위치를 반환합니다.

    다음 예제를 통해 mb_ereg_search_getregs 함수를 사용하여 검색된 문자열의 위치를 얻는 방법을 설명해 드리겠습니다.

    #hostingforum.kr
    php
    
    $pattern = '/d+/';
    
    $str = 'Hello123World456';
    
    
    
    preg_match_all($pattern, $str, $matches);
    
    $regs = mb_ereg_search_getregs($pattern, $str);
    
    
    
    print_r($matches);
    
    print_r($regs);
    
    


    위 코드를 실행하면, $regs 변수에는 매치된 문자열의 시작 위치와 끝 위치가 저장됩니다. $regs 변수의 구조는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [0] => Array
    
            (
    
                [0] => 123
    
                [1] => 456
    
            )
    
    
    
        [regs] => Array
    
            (
    
                [0] => Array
    
                    (
    
                        [0] => 6
    
                        [1] => 9
    
                    )
    
    
    
                [1] => Array
    
                    (
    
                        [0] => 13
    
                        [1] => 16
    
                    )
    
    
    
            )
    
    
    
    )
    
    


    위 결과에서, $regs['regs'][0][0]은 첫 번째 매치된 문자열 '123'의 시작 위치를 나타내고, $regs['regs'][0][1]은 첫 번째 매치된 문자열 '123'의 끝 위치를 나타냅니다. 마찬가지로, $regs['regs'][1][0]은 두 번째 매치된 문자열 '456'의 시작 위치를 나타내고, $regs['regs'][1][1]은 두 번째 매치된 문자열 '456'의 끝 위치를 나타냅니다.

    2025-08-05 15:48

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

검색

게시물 검색