개발자 Q&A

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

2025.06.21 22:29

RegexIterator::setPregFlags를 사용할 때 preg_flags의 의미를 파악할 수 있는 방법이 궁금합니다.

목록
  • 크래시헌터 8시간 전 2025.06.21 22:29 새글
  • 1
    1
제가 RegexIterator를 사용하여 특정 패턴을 찾으려고 하는데요, preg_flags를 설정할 때 의미가 있는 옵션들은 어떤 것들이 있는지 궁금합니다.

예를 들어, 'PREG_OFFSET_CAPTURE' 옵션은 문자열의 시작 위치까지 찾는 것을 의미하나요? 만약 그렇다면, 이 옵션을 사용할 때는 어떤 변화가 있는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  8시간 전



    preg_flags는 preg_match, preg_match_all, preg_replace, preg_replace_callback, preg_split, preg_grep, preg_quote, preg_last_error, preg_match_all, preg_match, preg_split, preg_replace_callback, preg_replace, preg_grep, preg_quote, preg_last_error 함수에서 사용됩니다.

    - PREG_OFFSET_CAPTURE 옵션은 preg_match, preg_match_all 함수에서 사용됩니다.
    - 이 옵션을 사용하면 매치된 문자열의 시작 위치까지 찾을 수 있습니다.
    - 예를 들어, 'Hello, world!' 문자열에서 'world'를 찾을 때, 시작 위치는 7입니다.
    - 이 옵션을 사용하지 않으면, 매치된 문자열만 반환됩니다.

    예제:

    #hostingforum.kr
    php
    
    $string = 'Hello, world!';
    
    $pattern = '/world/';
    
    
    
    preg_match($pattern, $string, $match, PREG_OFFSET_CAPTURE);
    
    print_r($match); // Array ( [0] => Array ( [0] => world [1] => 7 ) )
    
    
    
    preg_match($pattern, $string, $match);
    
    print_r($match); // Array ( [0] => world )
    
    


    이러한 옵션 외에도 preg_flags에는 여러 가지 옵션이 있습니다.

    - PREG_PATTERN_ORDER: 기본적으로 매치된 문자열을 배열의 첫 번째 요소로 반환합니다.
    - PREG_SET_ORDER: 매치된 문자열을 배열의 첫 번째 요소로 반환하지 않고, 매치된 문자열을 배열의 두 번째 요소로 반환합니다.
    - PREG_SPLIT_NO_EMPTY: preg_split 함수에서 사용됩니다. 매치된 문자열이 빈 문자열이면 제외합니다.
    - PREG_SPLIT_DELIM_CAPTURE: preg_split 함수에서 사용됩니다. 매치된 문자열을 포함합니다.
    - PREG_SPLIT_NO_EMPTY: preg_split 함수에서 사용됩니다. 매치된 문자열이 빈 문자열이면 제외합니다.
    - PREG_SPLIT_DELIM_CAPTURE: preg_split 함수에서 사용됩니다. 매치된 문자열을 포함합니다.
    - PREG_SPLIT_DELIM_CAPTURE: preg_split 함수에서 사용됩니다. 매치된 문자열을 포함합니다.
    - PREG_SPLIT_DELIM_CAPTURE: preg_split 함수에서 사용됩니다. 매치된 문자열을 포함합니다.

    이러한 옵션은 preg_match, preg_match_all, preg_replace, preg_replace_callback, preg_split, preg_grep, preg_quote, preg_last_error 함수에서 사용됩니다.

    예제:

    #hostingforum.kr
    php
    
    $string = 'hello,world,php';
    
    $pattern = '/,/';
    
    
    
    preg_split($pattern, $string, -1, PREG_SPLIT_NO_EMPTY);
    
    // Array ( [0] => hello [1] => world [2] => php )
    
    
    
    preg_split($pattern, $string, -1, PREG_SPLIT_DELIM_CAPTURE);
    
    // Array ( [0] => h [1] => , [2] => e [3] => l [4] => l [5] => o [6] => , [7] => w [8] => o [9] => r [10] => l [11] => d [12] => , [13] => p [14] => h [15] => p )
    
    


    이러한 옵션을 사용하여 preg_match, preg_match_all, preg_replace, preg_replace_callback, preg_split, preg_grep, preg_quote, preg_last_error 함수에서 다양한 기능을 구현할 수 있습니다.

    2025-06-21 22:30

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

검색

게시물 검색