이 글의 주요 내용은 PHP의 PCRE 정규 분석에 관한 것으로, 관심 있는 친구들이 이에 대해 배우고 도움이 되기를 바랍니다.
1. 소개
이전 블로그에 캐릭터셋에 대한 분석이 있습니다. 이것은 문자 집합에 관한 것이 아닙니다. PHP의 많은 기능은 기본적으로 UTF-8 인코딩 형식을 처리합니다. 그럼 더 이상 고민하지 말고 바로 본론으로 들어가겠습니다.
2. PHP 함수 mb_split 구문 분석
1 <?php 2 $preg_strings = '测、试、一、下'; 3 $preg_str = mb_split('、', $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 = '测试一下'; 3 $mb_arr = preg_split('//u', $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 = '测试一下'; 3 $is_true = preg_match_all('%[\x{4e00}-\x{9fa5}]+%u', $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!