Zwei Methoden: 1. Verwenden Sie preg_match_all() mit regulären Filterzeichenfolgen. Die Syntax lautet „preg_match_all(“/[x{4e00}-x{9fff}]+/u“, „$str“, $arr);“ ; 2. Verwenden Sie preg_replace() mit der regulären Suchzeichenfolge, um nach nicht-chinesischen Buchstaben in der Zeichenfolge zu suchen und diese durch leere Zeichen zu ersetzen. Die Syntax lautet „preg_replace(“/[^x{4E00}-x{9FFF}]+ /u",' ',$str)".
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, DELL G3-Computer
In PHP können Sie die folgenden zwei Funktionen verwenden, um nur die chinesischen Zeichen der Zeichenfolge
preg_replace zu extrahieren ()-Funktion
preg_match_all()-Funktion
Methode 1: Verwenden Sie die preg_match_all()-Funktion
preg_match_all()-Funktion, um den regulären Ausdruck „/[x{4e00}-“ abzugleichen x{9fff}] +/u
" kann die Zeichenfolge filtern und nur chinesische Zeichen abrufen. /[x{4e00}-x{9fff}]+/u
”可以过滤字符串,只获取中文字符。
会将匹配的中文字符一个个存入数组中(该数组由第三个参数指定)。
<?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); ?>
然后可以使用join()函数将结果值拼接成一个字符串。
join('',$arr[0])
说明:
1)preg_match_all()函数
preg_match_all()函数会搜索字符串中所有可以和正则表达式匹配的结果
preg_match_all(pattern,subject,matches,flags,offset)
参数说明如下:
preg_match_all() 函数可以返回 pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE。
2)join()函数
join() 函数返回一个由数组元素组合成的字符串。
join() 函数是 implode() 函数的别名。
join(separator,array)
separator:可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array:必需。要组合为字符串的数组。
返回值:返回一个由数组元素组合成的字符串。
方法2:使用preg_replace()函数
preg_match_all()函数配合正则表达式“/[^x{4E00}-x{9FFF}]+/u
”搜索字符串中的非中文字母,并将其替换成空字符''
<?php header("Content-type:text/html;charset=utf-8"); $str= 'php中文网!-=1548'; echo $str."<br>"; $pattern = "/[^\x{4E00}-\x{9FFF}]+/u"; $newstr=preg_replace($pattern,'', $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr); var_dump($newstr); ?>
Die resultierenden Werte können dann mithilfe der Funktion „join()“ zu einem String verkettet werden. Wenn $subject ein Array ist, gibt die Funktion preg_replace() ein Array zurück, andernfalls gibt sie einen String zurück. Wenn die Funktion preg_replace() eine Übereinstimmung findet, gibt sie das ersetzte $subject zurück, ansonsten das unveränderte $subject. Jeder Parameter der Funktion preg_replace() (außer dem Parameter $limit) kann ein Array sein. Wenn der Parameter $pattern und der Parameter $replacement beide Arrays sind, verarbeitet die Funktion die Schlüssel in der Reihenfolge, in der sie im Array erscheinen. Tritt ein Fehler auf, wird NULL zurückgegeben. Der Parameter $replacement kann Rückverweise \n oder $n enthalten, letzteres wird syntaktisch bevorzugt. Jeder dieser Verweise wird durch den Text ersetzt, der von der n-ten übereinstimmenden Erfassungsuntergruppe erfasst wurde. n kann zwischen 0 und 99 liegen, wobei \0 und $0 den vollständigen Mustervergleichstext darstellen. Empfohlenes Lernen: „PHP-Video-Tutorial“ Das obige ist der detaillierte Inhalt vonSo extrahieren Sie nur chinesische Zeichen aus einem PHP-String. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
🎜pattern: the Zu durchsuchendes Muster, das ein definierter regulärer Ausdruck ist; 🎜🎜subject: die zu durchsuchende Zeichenfolge; 🎜🎜matches: optionaler Parameter (mehrdimensionales Array), der zum Speichern aller übereinstimmenden Ergebnisse verwendet wird; die Array-Sortierung wird durch $flags angegeben; 🎜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: Die Ergebnisse werden nach $matches[0] sortiert, um alle zu speichern Übereinstimmungen des vollständigen Musters, $matches[1] zum Speichern der ersten Alle Übereinstimmungen in einer Untergruppe usw. 🎜🎜PREG_SET_ORDER: Die Ergebnisse werden wie folgt 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 erhalten wurden, und so weiter An. 🎜🎜PREG_OFFSET_CAPTURE: Wenn dieses Flag übergeben wird, wird jede gefundene Übereinstimmung mit einem erhöhten Offset relativ zur Zielzeichenfolge zurückgegeben. Beachten Sie, dass dadurch jedes Match-String-Element in $matches so geändert wird, dass das 0. Element der Match-String und das 1. Element der Offset des Match-Strings innerhalb des Betreffs ist. 🎜🎜🎜🎜offset: Optionaler Parameter, $offset wird verwendet, um die Suche ab der angegebenen Position in der Zielzeichenfolge zu starten (Einheit ist Byte). Die Funktion 🎜🎜🎜preg_match_all() kann die Anzahl der Übereinstimmungen für ein Muster zurückgeben (möglicherweise 0) oder FALSE, wenn ein Fehler auftritt. 🎜🎜2) Funktion „join()“ 🎜🎜Funktion „join()“ gibt eine Zeichenfolge zurück, die aus Array-Elementen besteht. Die Funktion 🎜🎜join() ist ein Alias der Funktion implode(). 🎜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. 🎜🎜🎜🎜Methode 2: Verwenden Sie die Funktion preg_replace() 🎜🎜🎜🎜preg_match_all() mit dem regulären Ausdruck „
/[^x{4E00}-x{9FFF}]+/u
“ um nicht-chinesische Buchstaben in der Zeichenfolge zu suchen und sie durch leere Zeichen ''
zu ersetzen. 🎜rrreee🎜🎜🎜🎜🎜 Beschreibung: Die Funktion preg_replace()🎜🎜🎜preg_replace() kann die Suche und Ersetzung regulärer Ausdrücke durchführen. Das Syntaxformat dieser Funktion ist wie folgt: 🎜rrreee🎜Parameter Die Anleitung lautet wie folgt: 🎜