현재 위치: > 최신 기사 목록> MB_EREG 기능에서 일치 결과를 캡처하는 방법은 무엇입니까? 완전한 단계 및 예방 조치 분석

MB_EREG 기능에서 일치 결과를 캡처하는 방법은 무엇입니까? 완전한 단계 및 예방 조치 분석

gitbox 2025-09-02

1. MB_EREG 기능의 기본 사용

MB_EREG 함수의 기본 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(pattern, </span><span><span class="hljs-keyword">string</span></span><span>, &amp;regs)
</span></span>
  • 패턴 : 정규 표현의 패턴.

  • 문자열 : 일치 해야하는 대상 문자열.

  • Regs : 이것은 일치하는 결과를 저장하기위한 선택적 매개 변수입니다. 이 매개 변수가 제공되면 MB_EREG는 일치하는 부분을 배열 reg 에 저장합니다. 배열 위시 0은 전체 일치 결과에 해당하고 후속 첨자는 서브 패턴의 일치 결과에 해당합니다.

예:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"환영PHP지도 시간"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"PHP"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"성공적으로 일치합니다\n"</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>);  </span><span><span class="hljs-comment">// 캡처 된 일치 결과를 출력하십시오</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"경기가 실패했습니다\n"</span></span><span>;
}
</span></span>

위의 예에서 "PHP 튜토리얼에 오신 것을 환영합니다"라는 문자열에 "PHP"가 포함 된 경우 MB_EREG는 True를 반환하고 $ regs 배열에 일치하는 "PHP"를 저장합니다.

2. 일치하는 결과를 캡처하십시오

일치하는 결과를 캡처하기위한 열쇠는 Regs 매개 변수에 있습니다. 이 매개 변수를 사용하면 MB_EREG는 일치하는 컨텐츠를 하나씩 저장하고 여러 하위 표현의 일치하는 결과를 캡처 할 수 있습니다.

예:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"이것은PHP그리고MySQL조합 예"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"(PHP)(그리고)(MySQL)"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"성공적으로 일치합니다\n"</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"경기가 실패했습니다\n"</span></span><span>;
}
</span></span>

출력 결과 :

 <span><span>성공적으로 일치합니다
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; PHP그리고MySQL
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; PHP
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; 그리고
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; MySQL
)
</span></span>

이 예에서, 정규식 (PHP) (및) (MySQL)는 3 개의 서브 패턴, 즉 "PHP" , ""MySQL " 의 일치하는 결과를 캡처합니다. $ regs [0]는 전체 일치하는 문자열을 저장하고 다음 $ regs [1] , $ regs [2]$ regs [3]는 각 서브 패턴의 일치하는 결과를 저장합니다.

3. 주목할만한 것들

3.1 정규 표현 작성

MB_EREG 가 사용하는 정규 표현 구문은 일반적인 일반 표현식과 유사하지만 특히 멀티 파이트 문자를 다룰 때 약간의 차이가 있습니다. 중국어를 처리 할 때 일반 표현식 및 기술의 캐릭터 세트 범위에 특별한주의를 기울이십시오.

예를 들어:

 <span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"^[\x{4e00}-\x{9fa5}]+$"</span></span><span>;  </span><span><span class="hljs-comment">// 한자 만 일치합니다</span></span><span>
</span></span>

이 정규식은 한자 (유니 코드 인코딩 범위 : \ x {4e00} to \ x {9fa5} )를 포함하는 문자열 만 일치합니다.

3.2 매개 변수 통과

MB_EREG를 사용하는 경우 REGS 매개 변수를 참조 형식으로 전달하여 일치하는 결과가 캡처되도록해야합니다. 그렇지 않으면 $ regs 배열은 데이터를 반환 할 수 없습니다.

3.3 함수의 반환 값

MB_EREG는 경기가 성공했는지 여부를 나타내는 부울 값을 반환합니다. 경기가 성공하면 true를 반환하십시오. 그렇지 않으면 False를 반환하십시오.

3.4 코딩 설정

멀티 바이트 문자 세트가 제대로 작동하도록하려면 MB_EREG를 호출하기 전에 올바른 문자 인코딩을 설정해야합니다. mb_internal_encoding ()을 사용하여 인코딩을 설정할 수 있습니다.

 <span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>

UTF-8 인코딩 된 문자 세트 (예 : GBK 또는 Shift-JIS)를 처리하는 경우 인코딩이 올바르게 설정되어 있는지 확인해야합니다.

3.5 성능 최적화

MB_EREG 는 멀티 바이트 문자 세트에 최적화 된 기능이므로 성능은 일반 정규 매칭과 비교하여 문자 세트 및 문자열 길이에 영향을받을 수 있습니다. 따라서 너무 많은 정규 표현 조작을 피하는 것과 같이 다량의 데이터를 처리 할 때 최적화에주의를 기울이는 것이 좋습니다.

4. 요약

MB_EREG 기능은 Multibyte 문자 세트의 정기적 인 매칭을 처리 할 수있는 PHP의 강력한 도구를 제공합니다. Regs 매개 변수를 올바르게 사용하면 일치하는 결과를 쉽게 캡처하고 처리 할 수 ​​있습니다. 정규 표현식을 작성하고 매개 변수를 합격하는 방법을 이해하면 문자열 처리에 MB_EREG를 보다 효율적으로 사용하는 데 도움이됩니다.