5.正则表达式

正则表达式基础

一、

fig:

<?php
echo preg_match_all('/a/','abc',$c);
?>

返回结果 1

<?php
echo preg_match_all('/a/','abc',$c);
var_dump($c);
?>

返回结果 fig:

相当于匹配一个a后,会把这个a存入变量$c中,最后计数为3

<?php
echo preg_replace('/a','1','fhwafhgdbjuehuhukauhuahlfa');
?>

目的:将最后字符串中的所有a替换为1,然后输出字符串

/\d/ 匹配所有数字的意思

/\D/ 匹配除了数字以外的所有字符

fig:

1、fig:

此时得到返回的结果是0

2、防止sql注入

fig:

此时如果我输入?1=' or 1=1

此时就会输出 非法访问

具体含义:如果我键入的1 的值“不是单词字符”,那么就会返回“非法访问”

二、

fig:

1、字符区间

[]:正则表达式中的中括号表示区间

fig:

a-9 报错而 9-a 不报错的原因:

ascii码a的序号比9对应的序号要小,而计算机是由大到小的

fig:

fig:

2、取反

fig:

匹配除了0-9之外的

3、关键字

fig:

fig:

匹配258这个整体

fig:

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

fig:

限制开头限制结尾

fig:

. 通配符匹配到两次

fig:

+: 有多个1匹配到一次

fig:

*: 匹配0次或者多次

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

fig:

可以使用.*匹配一切

fig:

可以快速取出标签中的内容

注意使用转义符\

fig:

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

fig:

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

fig:

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

fig:

4个8匹配一次,最多5个,此时返回值为2-----默认匹配最多的次数

题目:fig:

如果变量$regular的值大于0,那么就输出flag

trim:移除字符串前后的字符,即移除空白字符(换行、空格、看不到的结尾符)

fig:

其中最后的(key*key),匹配的是y,即ke y * key

而y* 代表着y可以匹配到0次或者多次

所以此时可以为kekey或者keyyyykey或者keykey

posted @ 2024-12-17 00:07  poirotl  阅读(26)  评论(0)    收藏  举报