현재 위치: > 최신 기사 목록> preg_grep 함수를 사용하여 정규 표현식을 준수하는 배열 요소를 필터링하고 일치시키는 방법은 무엇입니까? 자세한 단계 분석

preg_grep 함수를 사용하여 정규 표현식을 준수하는 배열 요소를 필터링하고 일치시키는 방법은 무엇입니까? 자세한 단계 분석

gitbox 2025-06-19

preg_grep는 PHP에서 정규 표현식을 기반으로 어레이에서 요소를 필터링하고 일치시키는 매우 유용한 기능입니다. 배열이 있고 정규 표현 규칙과 일치하는 요소를 필터링하려면 preg_grep가 매우 효율적인 선택입니다.

이 기사는 preg_grep 함수의 사용법을 자세히 소개하고 특정 예제를 사용하여 모든 사람이 그 기능을 더 잘 이해할 수 있도록 도와줍니다.

1. 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_invertpreg_grep_array 입니다.

2. preg_grep 함수의 반환 값

preg_grep는 정규 표현식과 일치하는 모든 요소를 ​​포함하는 새로운 배열을 반환합니다. 정규 표현식과 일치하지 않으면 빈 배열이 반환됩니다.

3. 예제를 사용하십시오

3.1 기본 사용

여러 줄이 포함 된 배열이 있다고 가정합니다. 숫자가 포함 된 모든 문자열을 걸러 내고 싶습니다. 우리는 preg_grep 함수를 사용하여 정규 표현식과 협력 할 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

산출:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

이 예에서 preg_grep 함수는 숫자를 포함하는 두 개의 문자열을 반환합니다.

3.2 preg_grep_invert 플래그를 사용한 역 필터링

정규 표현식에 맞지 않는 요소를 얻으려면 preg_grep_invert 플래그를 사용할 수 있습니다. 이런 식으로 함수는 정규 표현식과 일치하지 않는 요소를 반환합니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

산출:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; date
)
</span></span>

preg_grep_invert 에 의해 숫자가 포함되지 않은 문자열이 반환됩니다.

3.3 preg_grep_array 플래그를 사용하여 배열의 키를 얻으십시오.

반환 된 결과가 배열의 키를 유지하려면 preg_grep_array 플래그를 사용할 수 있습니다. 원래 배열 인덱스를 유지해야 할 때 매우 유용합니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

산출:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

이런 식으로 반환 된 배열에는 원래 배열의 키가 포함됩니다.

4. 고급 사용 : 다중 정규 매칭

배열의 요소에 여러 정기 규칙을 적용하려면 여러 정규식을 함께 사용할 수 있습니다.

예를 들어, 먼저 숫자가 포함 된 모든 요소와 일치 한 다음 길이가 6을 초과하는 문자열을 일치시킬 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

산출:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; watermelon321
)
</span></span>

이 예에서 먼저 숫자가 포함 된 요소를 필터링 한 다음 결과를 두 번째로 필터링하여 길이가 6보다 큰 문자열을 찾습니다.

5. 요약

preg_grep 는 일반 표현식을 기반으로 배열에서 요소를 필터링하는 데 적합한 매우 강력한 기능입니다. 정규 표현식 및 플래그 옵션을 사용하면 다양한 복잡한 매칭 및 필터링 요구를 쉽게 달성 할 수 있습니다. 이 기사의 소개가 PREG_GREP 의 사용을 더 잘 이해하고 PHP 프로그래밍의 효율성을 향상시키는 데 도움이되기를 바랍니다.