Home  >  Article  >  Backend Development  >  How to use PHP regular replacement preg_replace function

How to use PHP regular replacement preg_replace function

coldplay.xixi
coldplay.xixiOriginal
2020-08-06 14:29:072098browse

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

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn