개발자 Q&A

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

2025.07.02 19:25

PCRE Recursion Limit 관련 질문

목록
  • 모바일최적화광 2일 전 2025.07.02 19:25
  • 25
    1
제가 PCRE(recular pattern engine) 패턴을 사용하여 문자열을 검색하고 있으나, recursion_limit 설정을 이해하지 못하고 있습니다.

제가 설정한 recursion_limit 값은 1000입니다. 하지만, PCRE 패턴이 recursion_limit 값보다 더 많은 깊이를 갖는 경우 어떻게 처리되나요?

그리고 recursion_limit 값을 너무 낮게 설정하면 어떤 문제가 발생하나요?

제가 이해한바에선 recursion_limit 값이 너무 낮으면 PCRE 패턴이 중단되고, 에러가 발생하는 것으로 알고 있습니다.

하지만, recursion_limit 값이 너무 높으면 어떤 문제가 발생하나요?

혹시 recursion_limit 값을 설정하는 방법은 없나요?

혹시 recursion_limit 값에 대한 예시를 알려주실 수 있나요?

제가 더 궁금한 점이 많습니다.

제가 이해하고 있는 PCRE 패턴과 recursion_limit 값에 대한 내용이 틀렸는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    PCRE 패턴의 recursion_limit 설정은 패턴이 자신을 참조하는 깊이를 제한하는 기능입니다. recursion_limit 값이 설정되지 않으면, 패턴이 무한 반복을 하게 되며, 에러가 발생합니다.

    recursion_limit 값이 너무 낮게 설정하면, PCRE 패턴이 중단되고, 에러가 발생합니다. 예를 들어, 다음 패턴은 recursion_limit 값이 1000보다 낮을 때 에러가 발생합니다.

    #hostingforum.kr
    perl
    
    (?R)(a|b)*
    
    


    이 패턴은 'a' 또는 'b'를 반복하는 패턴이며, recursion_limit 값이 1000보다 낮을 때, 'a' 또는 'b'를 반복하는 깊이가 recursion_limit 값보다 더 많아지므로 에러가 발생합니다.

    recursion_limit 값이 너무 높게 설정하면, 패턴이 무한 반복을 하게 되며, 성능이 저하됩니다. 예를 들어, 다음 패턴은 recursion_limit 값이 1000000보다 높을 때 성능이 저하됩니다.

    #hostingforum.kr
    perl
    
    (?R)(a|b)*{1000000}
    
    


    이 패턴은 'a' 또는 'b'를 1000000번 반복하는 패턴이며, recursion_limit 값이 1000000보다 높을 때, 패턴이 무한 반복을 하므로 성능이 저하됩니다.

    recursion_limit 값을 설정하는 방법은 다음과 같습니다.

    * PCRE 패턴을 사용하는 언어에서 recursion_limit 값을 설정하는 방법은 언어에 따라 다릅니다. 예를 들어, Perl에서 recursion_limit 값을 설정하는 방법은 다음과 같습니다.

    #hostingforum.kr
    perl
    
        use re 'eval';
    
        

    * PCRE 패턴을 사용하는 언어에서 recursion_limit 값을 설정하는 방법은 언어에 따라 다릅니다. 예를 들어, PHP에서 recursion_limit 값을 설정하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
        pcre.recursion_limit = 1000;
    
        


    또는

    #hostingforum.kr
    php
    
        pcre.backtrack_limit = 1000;
    
        


    두 가지 방법 모두 recursion_limit 값을 설정할 수 있습니다. pcre.recursion_limit은 recursion_limit 값을 설정하는 기본 방법이며, pcre.backtrack_limit은 recursion_limit 값을 설정하는 대안 방법입니다.

    recursion_limit 값에 대한 예시는 다음과 같습니다.

    * recursion_limit 값이 1000인 경우, 패턴이 recursion_limit 값보다 더 많은 깊이를 갖는 경우 에러가 발생합니다.
    * recursion_limit 값이 1000000인 경우, 패턴이 무한 반복을 하므로 성능이 저하됩니다.

    제가 이해하고 있는 PCRE 패턴과 recursion_limit 값에 대한 내용은 다음과 같습니다.

    * PCRE 패턴의 recursion_limit 설정은 패턴이 자신을 참조하는 깊이를 제한하는 기능입니다.
    * recursion_limit 값이 너무 낮게 설정하면, PCRE 패턴이 중단되고, 에러가 발생합니다.
    * recursion_limit 값이 너무 높게 설정하면, 패턴이 무한 반복을 하므로 성능이 저하됩니다.
    * recursion_limit 값을 설정하는 방법은 언어에 따라 다릅니다.
    * recursion_limit 값에 대한 예시는 다음과 같습니다. recursion_limit 값이 1000인 경우, 패턴이 recursion_limit 값보다 더 많은 깊이를 갖는 경우 에러가 발생합니다. recursion_limit 값이 1000000인 경우, 패턴이 무한 반복을 하므로 성능이 저하됩니다.

    2025-07-02 19:26

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

검색

게시물 검색