
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