PHP PCRE 정기 분석

little bottle
풀어 주다: 2023-04-06 11:30:02
앞으로
2980명이 탐색했습니다.

이 글의 주요 내용은 PHP의 PCRE 정규 분석에 관한 것으로, 관심 있는 친구들이 이에 대해 배우고 도움이 되기를 바랍니다.

1. 소개

이전 블로그에 캐릭터셋에 대한 분석이 있습니다. 이것은 문자 집합에 관한 것이 아닙니다. PHP의 많은 기능은 기본적으로 UTF-8 인코딩 형식을 처리합니다. 그럼 더 이상 고민하지 말고 바로 본론으로 들어가겠습니다.

2. PHP 함수 mb_split 구문 분석

1 <?php
2 $preg_strings = &#39;测、试、一、下&#39;;
3 $preg_str = mb_split(&#39;、&#39;, $preg_strings);
4 print_r($preg_str);
로그인 후 복사

인쇄 결과:

Array(
    [0] => 测
    [1] => 试
    [2] => 一
    [3] => 下)
로그인 후 복사

이 함수는 기본적으로 UTF-8 인코딩 형식으로 구문 분석되는 기본 구문 분석을 사용합니다. 구분 기호(,)의 유니코드 16진수 코드 포인트를 사용하여 문자 $preg_strings를 분할합니다.

3. PHP 함수 preg_split 분석

"Test it" 문자열을 분할합니다

1 <?php
2 $strings = &#39;测试一下&#39;;
3 $mb_arr = preg_split(&#39;//u&#39;, $strings, -1, PREG_SPLIT_NO_EMPTY);
4 print_r($mb_arr);
로그인 후 복사

인쇄 결과는 다음과 같습니다.

Array(
    [0] => 测
    [1] => 试
    [2] => 一
    [3] => 下
)
로그인 후 복사

4. PCRE 분석에서

PHP에서 일반 구분 기호는 #, %, / 등이 될 수 있습니다.

정규 표현식 뒤에 몇 가지 수정자가 있는 경우가 있습니다. 그렇다면 그것들은 모두 무엇을 의미하는가?

예:

%[\x{4e00}-\x{9fa5}]+%u
로그인 후 복사

다음 수정자 u코드 테이블은 utf-8 인코딩 형식과 일반 일치를 일치시킵니다.

예 1:

1 <?php
2 $strings = &#39;测试一下&#39;;
3 $is_true = preg_match_all(&#39;%[\x{4e00}-\x{9fa5}]+%u&#39;, $strings, $match);
4 var_dump($is_true);
로그인 후 복사

인쇄된 결과는 다음과 같습니다.

Array(
    [0] => Array
        (
            [0] => 测试一下
        )
)
로그인 후 복사

여기서 [x{4e00}-x{9fa5}]는 무엇을 의미하나요?

PHP 일반에서 x는 16진수를 나타내는 데 사용됩니다.

중국어 UNICODE 코드 포인트 는 4E00 - 9FFF입니다(여기서는 모두 16진수입니다).

따라서 일반적인 일치 방법은 간격 [], ​​​​[x{4E00}-x{9FFF입니다. }]

이 두 정규 표현식의 효과는 동일합니다.

관련 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP PCRE 정기 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿