Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden

So verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden

青灯夜游
青灯夜游Original
2023-02-24 09:49:253557Durchsuche

In PHP können Sie den regulären Ausdruck „/[x{4e00}-x{9fff}]+/u“ und die Funktion preg_match_all() verwenden, um nur chinesische Zeichen abzugleichen, die Syntax „preg_match_all(“/[x{ 4e00}- x{9fff}“. Die Funktion preg_match_all() sucht nach allen Ergebnissen in der Zeichenfolge, die mit dem regulären Ausdruck übereinstimmen können. Mit „/[x{4e00}-x{9fff}]+/u“ können Sie dies tun Filtern Sie die Zeichenfolge und erhalten Sie nur chinesische Zeichen.

So verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden

Die Betriebsumgebung dieses Tutorials: Windows7-System, PHP8-Version, DELL G3-Computer

In PHP können Sie den regulären Ausdruck „/[x {4e00}-x{9fff} ]+/u“ und die Funktion preg_match_all(), um nur chinesische Zeichen abzugleichen. Die Funktion /[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() sucht nach allen Ergebnissen in der Zeichenfolge, die mit den regulären übereinstimmen können 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);
?>

Die Parameterbeschreibung lautet wie folgt:

    pattern: das zu durchsuchende Muster, also der definierte reguläre Ausdruck;

    subject: die zu durchsuchende Zeichenfolge; So verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden

    matches: optionaler Parameter (mehrdimensional). Array), wird zum Speichern aller übereinstimmenden Ergebnisse verwendet, Array-Sortierung. Angegeben durch $flags;

    flags: optionaler Parameter, der in Kombination mit den folgenden Tags verwendet werden kann (beachten Sie, dass PREG_PATTERN_ORDER und PREG_SET_ORDER nicht gleichzeitig verwendet werden können):

    PREG_PATTERN_ORDER: Das Ergebnis wird als $matches[0] sortiert, um alle Übereinstimmungen des vollständigen Musters zu speichern, $matches[1] speichert alle Übereinstimmungen der ersten Untergruppe usw. So verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden

    PREG_SET_ORDER: Das Ergebnis wird als $ sortiert matches[0] enthält alle Übereinstimmungen (einschließlich Untergruppen), die durch die erste Übereinstimmung erhalten wurden, $matches[1] ist ein Array, das alle Übereinstimmungen (einschließlich Untergruppen) enthält, die durch die zweite Übereinstimmung gefunden wurden, und so weiter

    PREG_OFFSET_CAPTURE: Wenn dieses Flag übergeben wird , jede gefundene Übereinstimmung wird mit ihrem Offset relativ zur Zielzeichenfolge zurückgegeben. Beachten Sie, dass dadurch jedes Übereinstimmungsergebniszeichenfolgenelement in $matches geändert wird, sodass das 0. Element die Übereinstimmungsergebniszeichenfolge und das 1. Element der Offset ist Ergebniszeichenfolge im Betreff abgleichen.

    offset: Optionaler Parameter, $offset wird verwendet, um die Suche ab der angegebenen Position in der Zielzeichenfolge zu starten (Einheit ist Bytes). Die Funktion
    • preg_match_all() kann die Anzahl zurückgeben Übereinstimmungen mit Muster (möglicherweise 0). Wenn ein Fehler auftritt, wird FALSE zurückgegeben. Die Funktion

    • preg_match_all() kann mit dem regulären Ausdruck „/[x{4e00}-x{9fff}]“ verwendet werden. +/u", um die Zeichenfolge zu filtern und nur chinesische Zeichen zu erhalten. Zeichen.

    Hinweis: Die Funktion

    preg_match_all() speichert die übereinstimmenden Funktionszeichen einzeln in einem Array (das Array wird durch den dritten Parameter angegeben).

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

    Zu diesem Zeitpunkt können Sie die Funktion implode() verwenden, um den Ergebniswert in eine Zeichenfolge zu verbinden. 🎜
    implode(separator,array)
    🎜🎜🎜🎜🎜Erweiterte Kenntnisse: implode()-Funktion🎜🎜🎜implode()-Funktion gibt eine Zeichenfolge zurück, die aus Array-Elementen besteht. 🎜rrreee🎜🎜🎜Trennzeichen: Optional. Gibt an, was zwischen Array-Elementen platziert wird. Der Standardwert ist „“ (leerer String). 🎜🎜🎜🎜Array: erforderlich. Arrays, die zu Strings zusammengefasst werden sollen. 🎜🎜🎜🎜Rückgabewert: Gibt eine Zeichenfolge zurück, die aus Array-Elementen besteht.​ 🎜🎜Es gibt auch eine Funktion mit derselben Funktion wie die Funktion implode(): join(). Die Funktion join() ist ein Alias ​​der Funktion implode(). 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke in PHP, um nur chinesische Zeichen zu finden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn