Maison > développement back-end > Problème PHP > Comment utiliser des expressions régulières en php pour faire correspondre uniquement les caractères chinois

Comment utiliser des expressions régulières en php pour faire correspondre uniquement les caractères chinois

青灯夜游
Libérer: 2023-03-17 22:20:02
original
3563 Les gens l'ont consulté

En php, vous pouvez utiliser l'expression régulière "/[x{4e00}-x{9fff}]+/u" et la fonction preg_match_all() pour faire correspondre uniquement les caractères chinois, la syntaxe "preg_match_all("/[x{ 4e00}- x{9fff}". La fonction preg_match_all() recherchera tous les résultats dans la chaîne pouvant correspondre à l'expression régulière. Avec "/[x{4e00}-x{9fff}]+/u", vous pouvez filtrer la chaîne et obtenir uniquement les caractères chinois.

Comment utiliser des expressions régulières en php pour faire correspondre uniquement les caractères chinois

L'environnement d'exploitation de ce tutoriel : système windows7, version PHP8, ordinateur DELL G3

En php, vous pouvez utiliser l'expression régulière "/[x". {4e00}-x{9fff} ]+/u" et la fonction preg_match_all() pour faire correspondre uniquement les caractères chinois. La fonction /[x{4e00}-x{9fff}]+/u”和preg_match_all()函数来只匹配汉字。

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

preg_match_all(pattern,subject,matches,flags,offset)
Copier après la connexion

参数说明如下:

  • 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() recherchera tous les résultats dans la chaîne qui peuvent correspondre au caractère normal. expression
<?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);
?>
Copier après la connexion

La description du paramètre est la suivante :

    pattern : le modèle à rechercher, c'est-à-dire l'expression régulière définie

    subject : la chaîne à rechercher Comment utiliser des expressions régulières en php pour faire correspondre uniquement les caractères chinois

    matches : paramètre facultatif (multidimensionnel ; array), utilisé pour stocker tous les résultats correspondants, tri de tableau Spécifié par $flags;

    flags : paramètre facultatif, qui peut être utilisé en combinaison avec les balises suivantes (notez que PREG_PATTERN_ORDER et PREG_SET_ORDER ne peuvent pas être utilisés en même temps) : < ul>

    PREG_PATTERN_ORDER : Le résultat est trié comme $matches[0] pour enregistrer toutes les correspondances du modèle complet, $matches[1] enregistre toutes les correspondances du premier sous-groupe, et ainsi de suite Comment utiliser des expressions régulières en php pour faire correspondre uniquement les caractères chinois

    PREG_SET_ORDER : Le résultat est trié comme $ matches[0] contient toutes les correspondances (y compris les sous-groupes) obtenues par la première correspondance, $matches[ 1] est un tableau contenant toutes les correspondances (y compris les sous-groupes) trouvées dans la deuxième correspondance, et ainsi de suite

    PREG_OFFSET_CAPTURE : Si cet indicateur est passé , chaque correspondance trouvée sera renvoyée avec son décalage par rapport à la chaîne cible Shift. Notez que cela modifiera chaque élément de la chaîne de résultat de la correspondance dans $matches afin que le 0ème élément soit la chaîne du résultat de la correspondance et que le 1er élément soit le décalage de la. correspond à la chaîne de résultat dans le sujet.

    offset : paramètre facultatif, $offset est utilisé pour lancer la recherche à partir de la position spécifiée dans la chaîne cible (l'unité est en octets). La fonction
    • preg_match_all() peut renvoyer le nombre de. correspondances de modèle (éventuellement 0). Si une erreur se produit, FALSE sera renvoyé. La fonction

    • preg_match_all() peut être utilisée avec l'expression régulière "/[x{4e00}-x{9fff}] +/u" pour filtrer la chaîne et obtenir uniquement les caractères chinois. caractère.

    Remarque : La fonction

    preg_match_all() stockera les caractères de fonction correspondants dans un tableau un par un (le tableau est spécifié par le troisième paramètre).

    implode(&#39;&#39;,$arr[0])
    Copier après la connexion

    À ce stade, vous pouvez utiliser la fonction implode() pour diviser la valeur du résultat en une chaîne. 🎜
    implode(separator,array)
    Copier après la connexion
    🎜🎜🎜🎜🎜Connaissances étendues : fonction implode()🎜🎜🎜La fonction implode() renvoie une chaîne composée d'éléments de tableau. 🎜rrreee🎜🎜🎜séparateur : facultatif. Spécifie ce qui est placé entre les éléments du tableau. La valeur par défaut est "" (chaîne vide). 🎜🎜🎜🎜tableau : obligatoire. Tableaux à combiner en chaînes. 🎜🎜🎜🎜Valeur de retour : renvoie une chaîne composée d'éléments de tableau.​ 🎜🎜Il existe également une fonction avec la même fonction que la fonction implode() : join(). La fonction join() est un alias de la fonction implode(). 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal