Let’s first understand what is greedy in regular expressions and what is non-greedy? Or what is matching priority quantifier and what is ignoring priority quantifier?
Okay, I don’t know what the concept is, let’s give an example.
A student wanted to filter the content between them. This is how he wrote the regular rules and procedures.
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
It seems like there is nothing wrong with it, but in fact it is not. If
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>';
then after the above program processing, the result is
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为 <script>alert(document.cookie)</script>
Still He couldn't achieve the effect he wanted. The above is non-greed, and some are called laziness. The sign of non-greedy is to add ? after the quantitative metacharacter, such as +?, *?, ?? (more special, I will write about it in the future BLOG), etc. That is, it means non-greedy. If you don’t write ?, it means greedy. For example
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为Latest Articles by Author
1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00Latest IssuesTeam collaboration - What should I do if someone needs the feature I wrote as a dependency in git flow?From 1970-01-01 08:00:00000Confusion about using gitlab's fork&pull request mode within the teamFrom 1970-01-01 08:00:00000Related TopicsMore>
- Tutorial on buying and selling Bitcoin on Huobi.com
- How to enable TFTP server
- Mechanical energy conservation law formula
- What is the working principle and process of mybatis
- What caching mechanisms does php have?
- How to turn off windows security center
- What is the difference between ibatis and mybatis
- How to check deleted call records