Two methods: 1. Use preg_match_all() with regular filter strings, the syntax "preg_match_all("/[\x{4e00}-\x{9fff}] /u","$str", $arr);"; 2. Use preg_replace() with regular expressions to search for non-Chinese letters in the string and replace them with empty characters. The syntax is "preg_replace("/[^\x{4E00}-\x{9FFF} ] /u",'',$str)".
The operating environment of this tutorial: windows7 system, PHP version 8.1, DELL G3 computer
In php, you can use the following two functions To extract only the Chinese characters of the string
preg_replace() function
preg_match_all() function
Method 1: Use the preg_match_all() function
preg_match_all() function with the regular expression "/[\x{4e00}-\x {9fff}] /u
" can filter the string and only get Chinese characters.
will store the matching Chinese characters into an array one by one (the array is specified by the third parameter).
<?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); ?>
The result value can then be spliced into a string using the join() function.
join('',$arr[0])
Instructions:
1) preg_match_all() function
preg_match_all() function will search for strings All results in
preg_match_all(pattern,subject,matches,flags,offset)
are described as follows:
The preg_match_all() function can return the number of matches for pattern (possibly 0), or FALSE if an error occurs.
2) join() function
join() function returns a string composed of array elements.
join() function is an alias of implode() function.
join(separator,array)
separator: Optional. Specifies what is placed between array elements. Default is "" (empty string).
array: required. Arrays to be combined into strings.
Return value: Returns a string composed of array elements.
Method 2: Use the preg_replace() function
preg_match_all() function with the regular expression "/[^\x{ 4E00}-\x{9FFF}] /u
” Search for non-Chinese letters in the string and replace them with empty characters ''
.
<?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); ?>
Description: preg_replace()
preg_replace() function can perform search and replacement of regular expressions and is a powerful String replacement processing function, the syntax format of this function is as follows:
preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
The parameter description is as follows:
If $subject is an array, the preg_replace() function will return an array, otherwise it will return a string.
If the function preg_replace() finds a match, it will return the replaced $subject, otherwise it will return the unchanged $subject. Each parameter of the preg_replace() function (except the parameter $limit) can be an array. If the $pattern parameter and the $replacement parameter are both arrays, the function will process the keys in the order they appear in the array. If an error occurs, NULL is returned.
The parameter $replacement can contain back references \\n or $n, the latter is preferred syntactically. Each such reference will be replaced by the text captured by the nth capturing subgroup that was matched. n can be 0-99, with \\0 and $0 representing the complete pattern matching text.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to extract only Chinese characters from php string. For more information, please follow other related articles on the PHP Chinese website!