Heim >Backend-Entwicklung >PHP-Problem >So extrahieren Sie nur chinesische Zeichen aus einem PHP-String
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. preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
Anleitung: 🎜1) preg_match_all()-Funktion 🎜🎜preg_match_all()-Funktion sucht nach allen Ergebnissen in der Zeichenfolge, die mit dem regulären Ausdruck 🎜rrreee🎜 übereinstimmen können. Die Parameterbeschreibung lautet wie folgt: 🎜
/[^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: 🎜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!