Home > Article > Backend Development > How to use PHP regular replacement preg_replace function
How to use PHP regular replacement preg_replace function: 1. Remove 0 characters, the code is [preg_replace("/0/","",$str)]; 2. Remove all numbers, the code is [preg_replace ("/[0-9]/","",$str)].
How to use PHP regular replacement preg_replace function:
<?php $str="as2223adfsf0s4df0sdfsdf"; echo preg_replace("/0/","",$str);//去掉0字符,此时相当于 replace的功能, preg_replace("/0/","A",$str); 这样就是将0变成A的意思了 echo preg_replace("/[0-9]/","",$str);//去掉所有数字 echo preg_replace("/[a-z]/","",$str); //这样是去掉所有小写字母 echo preg_replace("/[A-Z]/","",$str); //这样是去掉所有大写字母 echo preg_replace("/[a-z,A-Z]/","",$str); //这样是去掉所有字母 $str="as2223adfsAAf0s4df0s中国人dD中南海DDfsdf"; echo preg_replace("/[a-z,A-Z,0-9]/","",$str); //去掉所有字母和数字 ?>
After the above examples, I believe everyone knows,[ ]
and what’s inside it. You can also see that the matching string must be added with / /
(see the first parameter of the example)
<?php $str="acsdcs<55555555>sc<6666>sdcd"; echo preg_replace("/<.*>/","",$str);
means that the string starting with a799ebce2b3cbf42a7863f07bf77fe0e
, the output result is: acsdcssdcd
Note: The .* above means any character, that is, regardless of the a8093152e673feb7aba1828c43532094 is to remove everything. . represents any character, * represents any number
Now let’s change it, what if we don’t want it to be any number?
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.{4}>/","",$str);
//Output at this time: acsdcs02eac4294052cb4fb9d07d6c10a3ea36scsdcd Because {4} specifies the condition: only 4 characters within the a8093152e673feb7aba1828c43532094 satisfy the condition, so 02eac4294052cb4fb9d07d6c10a3ea36 does not meet the condition, no be replaced.
Note: At this time we learned another knowledge point {number} means specifying the previous number, * means any number (0--unlimited)
means the number of repetitions In addition to *, {specified times}, there are many expressions:
<?php $str="acsdcs<55555555>sc<6666>sd<>cd"; echo preg_replace("/<[0-9]*>/","",$str); //输出acsdcscd echo "<hr>"; echo preg_replace("/<[0-9]+>/","",$str); //输入acsdcsscsd<>cd ?>
The above example is just to express the difference between * and, * means repeating 0 times or n times, and means repeating 1 or more times, that is In one example, 406b8fa7a5d4d3361b8eae30a60bc812 means that there must be at least one number in a8093152e673feb7aba1828c43532094 to qualify.
I believe everyone knows at this time why the output results of using * and using in the above example are different
Come again:
<?php $str="acsdcs<55555555>sc<6666>sd<>cd"; echo preg_replace("/<[0-9]?>/","",$str); //输出acsdcs<55555555>sc<6666>sdcd ?>
Look at [0-9]? Here ? means that if it is 0 or 1 times, it does not meet the conditions if it is more than 1 time.
To summarize, above we learned how * ? and braces {} represent the number of repetitions.
Related learning recommendations: php programming (video)
The above is the detailed content of How to use PHP regular replacement preg_replace function. For more information, please follow other related articles on the PHP Chinese website!