preg_grep는 PHP에서 정규 표현식을 기반으로 어레이에서 요소를 필터링하고 일치시키는 매우 유용한 기능입니다. 배열이 있고 정규 표현 규칙과 일치하는 요소를 필터링하려면 preg_grep가 매우 효율적인 선택입니다.
이 기사는 preg_grep 함수의 사용법을 자세히 소개하고 특정 예제를 사용하여 모든 사람이 그 기능을 더 잘 이해할 수 있도록 도와줍니다.
<span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ 패턴 : 이것은 정규 표현식이며 PHP는 이러한 규칙에 따라 배열의 요소와 일치합니다.
$ 입력 : 필터링 할 배열.
$ 플래그 : 반환 된 배열 유형을 결정하는 선택적 플래그 매개 변수입니다. 일반적으로 사용되는 플래그는 preg_grep_invert 및 preg_grep_array 입니다.
preg_grep는 정규 표현식과 일치하는 모든 요소를 포함하는 새로운 배열을 반환합니다. 정규 표현식과 일치하지 않으면 빈 배열이 반환됩니다.
여러 줄이 포함 된 배열이 있다고 가정합니다. 숫자가 포함 된 모든 문자열을 걸러 내고 싶습니다. 우리는 preg_grep 함수를 사용하여 정규 표현식과 협력 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// 숫자를 포함하는 문자열을 일치시킵니다</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
산출:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => apple123
[</span><span><span class="hljs-meta">2</span></span><span>] => cherry45
)
</span></span>
이 예에서 preg_grep 함수는 숫자를 포함하는 두 개의 문자열을 반환합니다.
정규 표현식에 맞지 않는 요소를 얻으려면 preg_grep_invert 플래그를 사용할 수 있습니다. 이런 식으로 함수는 정규 표현식과 일치하지 않는 요소를 반환합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// 숫자를 포함하는 문자열을 일치시킵니다</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_INVERT);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
산출:
<span><span>Array
(
[</span><span><span class="hljs-meta">1</span></span><span>] => banana
[</span><span><span class="hljs-meta">3</span></span><span>] => date
)
</span></span>
preg_grep_invert 에 의해 숫자가 포함되지 않은 문자열이 반환됩니다.
반환 된 결과가 배열의 키를 유지하려면 preg_grep_array 플래그를 사용할 수 있습니다. 원래 배열 인덱스를 유지해야 할 때 매우 유용합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// 숫자를 포함하는 문자열을 일치시킵니다</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_ARRAY);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
산출:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => apple123
[</span><span><span class="hljs-meta">2</span></span><span>] => cherry45
)
</span></span>
이런 식으로 반환 된 배열에는 원래 배열의 키가 포함됩니다.
배열의 요소에 여러 정기 규칙을 적용하려면 여러 정규식을 함께 사용할 수 있습니다.
예를 들어, 먼저 숫자가 포함 된 모든 요소와 일치 한 다음 길이가 6을 초과하는 문자열을 일치시킬 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>, </span><span><span class="hljs-string">"watermelon321"</span></span><span>];
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// 숫자를 포함하는 문자열을 일치시킵니다</span></span><span>
</span><span><span class="hljs-comment">// 사용 preg_grep 숫자가 포함 된 요소를 필터링합니다</span></span><span>
</span><span><span class="hljs-variable">$matched</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);
</span><span><span class="hljs-comment">// 길이가 필터링됩니다6강요</span></span><span>
</span><span><span class="hljs-variable">$long_words</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-string">'/^.{7,}$/'</span></span><span>, </span><span><span class="hljs-variable">$matched</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$long_words</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
산출:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => apple123
[</span><span><span class="hljs-meta">4</span></span><span>] => watermelon321
)
</span></span>
이 예에서 먼저 숫자가 포함 된 요소를 필터링 한 다음 결과를 두 번째로 필터링하여 길이가 6보다 큰 문자열을 찾습니다.
preg_grep 는 일반 표현식을 기반으로 배열에서 요소를 필터링하는 데 적합한 매우 강력한 기능입니다. 정규 표현식 및 플래그 옵션을 사용하면 다양한 복잡한 매칭 및 필터링 요구를 쉽게 달성 할 수 있습니다. 이 기사의 소개가 PREG_GREP 의 사용을 더 잘 이해하고 PHP 프로그래밍의 효율성을 향상시키는 데 도움이되기를 바랍니다.