In the previous article "PHP String Learning: How to Remove Other Characters, Leaving Only Numbers", we introduced the use of for loops and in_array() or is_numeric() functions to extract strings method for numeric characters. This time we continue to learn and practice PHP strings and introduce several other methods of extracting numeric characters in strings.
Extracting numeric characters from a string is essentially a string filtering operation. When I saw string filtering, I thought of "regular expression".
Regular expression is a logical formula for string operations. It uses some predefined specific characters and combinations of these specific characters to form a "rule string". This "rule string" " is used to express a filtering logic for strings.
Regular expressions construct patterns with specific rules, compare them with the input string information, and use them in specific functions to achieve operations such as string matching, search, replacement, and splitting.
Let's see how to use regular expressions to filter strings, extract only the numeric characters in the string, and return a substring composed of these numeric characters.
For example, we give the following string
$str ='0我是123456一段测试的字789符串0';
and want to return a substring composed of numeric characters "01234567890
"!
Method 1. Use the preg_replace() function
Analyze the key code above:
preg_replace("/ [^0-9]/", "", $str)
means to match characters other than numbers between 0 and 9, and replace these characters with empty characters, that is, delete these characters. Then only numeric characters are left, so the output result is:
Let’s take a brief look at the preg_replace() function
The preg_replace() function can be executed Regular expression search and replacement is a powerful string replacement processing function. Its syntax format is "preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count ]])
" means searching for the part matching pattern in the subject and replacing it with replacement; the optional parameter limit is used to set the maximum number of substitutions (the default value is -1, which can be unlimited).
Method 2: Use the preg_match_all() function
Analyze the above code:
preg_match_all('/\ d /',$str,$array)
means to search for substrings containing only numeric characters between 0 and 9 multiple times in the string $str
, and put the matching results each time In an array $array
. We use var_dump($array)
to output this array and see:
will find that the result array $array
is a two Dimensional array, the elements containing the matching results are the inner arrays. If you want to splice these elements into a string, you need to nest two levels of foreach loops:
In the first level of loop
foreach($array as $arr){ }
Assign the inner array as a value to $arr
, so the array that needs to be traversed in the second loop becomes $arr
foreach($arr as $value){ $result .= $value; }
In each loop, assign the array value to the variable $value, and then use the ".=
" operator to splice it into String $result
, so initially $result
needs to be an empty string.
The output result is:
Let’s take a brief look at the preg_match_all() function.
preg_match_all() function can search for all results in the string that can match the regular expression. It is a function that performs global regular expression matching. Its syntax format is
preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
$pattern Regular expression
$subject String to match
$matches All matching results (array)
preg_match_all() will match all results. If you want to stop matching after one successful match, you need to use the preg_match() function.
Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial
Finally, I recommend reading a classic course "PHP String Processing (Jade Girl Heart Sutra Edition)", it's free~ come and learn !
The above is the detailed content of PHP string learning uses regular filters to filter characters and return numeric characters. For more information, please follow other related articles on the PHP Chinese website!