5.正则表达式
正则表达式基础
一、

<?php
echo preg_match_all('/a/','abc',$c);
?>
返回结果 1
<?php
echo preg_match_all('/a/','abc',$c);
var_dump($c);
?>
返回结果 
相当于匹配一个a后,会把这个a存入变量$c中,最后计数为3
<?php
echo preg_replace('/a','1','fhwafhgdbjuehuhukauhuahlfa');
?>
目的:将最后字符串中的所有a替换为1,然后输出字符串
/\d/ 匹配所有数字的意思
/\D/ 匹配除了数字以外的所有字符

1、
此时得到返回的结果是0
2、防止sql注入

此时如果我输入?1=' or 1=1
此时就会输出 非法访问
具体含义:如果我键入的1 的值“不是单词字符”,那么就会返回“非法访问”
二、

1、字符区间
[]:正则表达式中的中括号表示区间

a-9 报错而 9-a 不报错的原因:
ascii码a的序号比9对应的序号要小,而计算机是由大到小的


2、取反

匹配除了0-9之外的
3、关键字


匹配258这个整体

限制匹配字符串的开头为abc

限制开头限制结尾

. 通配符匹配到两次

+: 有多个1匹配到一次

*: 匹配0次或者多次
可以看到,总共匹配到了两次,第一次为没有匹配到,故记为1;第二次为存在一个类似于over的结尾符,只不过没有显示出来,因此又没有匹配到,又记1,总的就记为2。

可以使用.*匹配一切

可以快速取出标签中的内容
注意使用转义符\

匹配或者匹配abfa
4、限定符与修饰符

匹配到4个8算一次,此时返回值为1

4个8以上的都能匹配到,此时返回值为1

4个8匹配一次,最多5个,此时返回值为2-----默认匹配最多的次数
题目:
如果变量$regular的值大于0,那么就输出flag
trim:移除字符串前后的字符,即移除空白字符(换行、空格、看不到的结尾符)

其中最后的(key*key),匹配的是y,即ke y * key
而y* 代表着y可以匹配到0次或者多次
所以此时可以为kekey或者keyyyykey或者keykey

浙公网安备 33010602011771号