>백엔드 개발 >PHP 문제 >PHP에서 정규식을 사용하여 한자만 일치시키는 방법

PHP에서 정규식을 사용하여 한자만 일치시키는 방법

青灯夜游
青灯夜游원래의
2023-02-24 09:49:253561검색

PHP에서는 정규식 "/[x{4e00}-x{9fff}]+/u"와 preg_match_all() 함수를 사용하여 한자만 일치시킬 수 있으며 구문 "preg_match_all("/[x{ 4e00}- x{9fff}". preg_match_all() 함수는 문자열에서 정규 표현식과 일치할 수 있는 모든 결과를 검색합니다. "/[x{4e00}-x{9fff}]+/u"를 사용하면 다음을 수행할 수 있습니다. 문자열을 필터링하고 중국어 문자만 가져옵니다.

PHP에서 정규식을 사용하여 한자만 일치시키는 방법

이 튜토리얼의 운영 환경: windows7 시스템, PHP8 버전, DELL G3 컴퓨터

PHP에서는 정규식 "/[x"를 사용할 수 있습니다. {4e00}-x{9fff} ]+/u" 및 preg_match_all() 함수를 사용하여 한자만 일치시킵니다. /[x{4e00}-x{9fff}]+/u”和preg_match_all()函数来只匹配汉字。

preg_match_all()函数会搜索字符串中所有可以和正则表达式匹配的结果

preg_match_all(pattern,subject,matches,flags,offset)

参数说明如下:

  • pattern:要搜索的模式,也就是定义好的正则表达式;
  • subject:要搜索的字符串;
  • matches:可选参数(多维数组),用来存放所有匹配的结果, 数组排序通过 $flags 指定;
  • flags:可选参数,可以结合下面几个标记使用(注意不能同时使用 PREG_PATTERN_ORDER 和 PREG_SET_ORDER):
    • PREG_PATTERN_ORDER:结果排序为 $matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一个子组的所有匹配,以此类推。
    • PREG_SET_ORDER:结果排序为 $matches[0] 包含第一次匹配得到的所有匹配(包含子组), $matches[1] 是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。
    • PREG_OFFSET_CAPTURE:如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。注意这会改变 $matches 中的每一个匹配结果字符串元素,使其成为一个第 0 个元素为匹配结果字符串,第 1 个元素为匹配结果字符串在 subject 中的偏移量。
  • offset:可选参数,$offset 用于从目标字符串中指定位置开始搜索(单位是字节)。

preg_match_all() 函数可以返回 pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE。

preg_match_all()函数配合正则表达式“/[x{4e00}-x{9fff}]+/u

preg_match_all() 함수는 문자열에서 일반 문자와 일치할 수 있는 모든 결과를 검색합니다. 표현식
<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^";
echo $str;
preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);
var_dump($arr);
?>

매개변수 설명은 다음과 같습니다.

    pattern: 검색할 패턴, 즉 정의된 정규 표현식

    subject: 검색할 문자열 PHP에서 정규식을 사용하여 한자만 일치시키는 방법

    matches: 선택적 매개변수(다차원) 배열), 일치하는 모든 결과를 저장하는 데 사용됨, 배열 정렬 $flags로 지정됨

    flags: 다음 태그와 함께 사용할 수 있는 선택적 매개변수(PREG_PATTERN_ORDER 및 PREG_SET_ORDER는 동시에 사용할 수 없음):

    PREG_PATTERN_ORDER: 결과는 $matches[0]로 정렬되어 전체 패턴의 모든 일치 항목을 저장하고, $matches[1]은 첫 번째 하위 그룹의 모든 일치 항목을 저장하는 식으로 진행됩니다. PHP에서 정규식을 사용하여 한자만 일치시키는 방법

    PREG_SET_ORDER: 결과는 $로 정렬됩니다. match[0]에는 첫 번째 일치에서 얻은 모든 일치(하위 그룹 포함)가 포함되고, $matches[ 1]은 두 번째 일치에서 발견된 모든 일치(하위 그룹 포함)가 포함된 배열입니다.

    PREG_OFFSET_CAPTURE: 이 플래그가 전달되는 경우 , 발견된 각 일치 항목은 대상 문자열을 기준으로 한 오프셋과 함께 반환됩니다. Shift 이렇게 하면 $matches의 각 일치 결과 문자열 요소가 변경되어 0번째 요소가 일치 결과 문자열이 되고 첫 번째 요소가 해당 문자열의 오프셋이 됩니다.

    offset: 선택적 매개변수인 $offset은 대상 문자열의 지정된 위치에서 검색을 시작하는 데 사용됩니다(단위는 바이트).
    • preg_match_all() 함수는 개수를 반환할 수 있습니다. 패턴 일치(0일 수도 있음). 오류가 발생하면 FALSE가 반환됩니다.

    • preg_match_all() 함수는 정규 표현식 "/[x{4e00}-x{9fff}]와 함께 사용할 수 있습니다. +/u"를 사용하여 문자열을 필터링하고 한자만 가져옵니다.

    참고:

    preg_match_all() 함수는 일치하는 함수 문자를 하나씩 배열에 저장합니다(배열은 세 번째 매개변수로 지정됩니다).

    implode(&#39;&#39;,$arr[0])

    이때 implode() 함수를 사용하면 결과 값을 문자열로 이어붙일 수 있습니다. 🎜
    implode(separator,array)
    🎜🎜🎜🎜🎜확장 지식: implode() 함수🎜🎜🎜implode() 함수는 배열 요소로 구성된 문자열을 반환합니다. 🎜rrreee🎜🎜🎜구분 기호: 선택 사항입니다. 배열 요소 사이에 무엇을 배치할지 지정합니다. 기본값은 ""(빈 문자열)입니다. 🎜🎜🎜🎜배열: 필수입니다. 문자열로 결합할 배열입니다. 🎜🎜🎜🎜반환값: 배열 요소로 구성된 문자열을 반환합니다.​ 🎜🎜implode() 함수와 동일한 기능을 가진 함수인 Join()도 있습니다. Join() 함수는 implode() 함수의 별칭입니다. 🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

    위 내용은 PHP에서 정규식을 사용하여 한자만 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.