首页 > 作文

正则表达式匹配题

更新时间:2023-04-07 12:56:35 阅读: 评论:0

正则表达式匹配题

靶场地址:http://**.**.***.**:8010/re/?id=1

<?php   $key='flag{*********冲量的方向***********************}';  $regular=preg_match("/zkaq.*key.{2,9}:\/.*\/(key*key)/i", trim($_get["id"]), $match);  if( $regular ){     die('key: '.$key);  }

代码解释:

preg_match(正则表达式,匹配的字符串)

匹配第一个匹配正则的子字符串,未找到返回0,找到返回1

trim($_get[“id”])接受id传参过来的字符串

if描写雪景的成语($regular){die(‘key:‘.盛开的拼音$key);}

if (1){}执行;

if(0){}不执行;

die();输出一条消息,并退出当前脚本。

该函数是函数的别名。

解题思路:本题需要匹配的字符串的字符串符合正则表达式才会返回flag

正则表达式解释:

php的正则表达式要写在/ /之间。.:匹配除换行符 \n 之外的任何单字符。*:匹配前面的子表达式好看的现代都市小说零次或多次。{n,m}: m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooood" 中的前三个o。请注意在逗号和两个数之间不能有空格。\: 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。i:标记指定不区分大小写。

/zkaq.*key.{2,9}:\/.*\/(key*key)/i

拆分讲解这个正则表达式

1.

/zkaq.*/:表示”zkaq”后面有0-n个除换行符 \n 之外的任何单字符(n为非负整数)。zkaq(我可以理解为后面可以没跟着字符)

2.

/key.{2,9}/:表示”key”后面有2-9个除换行符 \n 之外的任何单字符。keyhello(我可以在”key”后添加2-9个字符)

3.

/ :\/.*\/ /:第一个”:”为字符冒号,”\/”为斜杠”/”的转译,”.*”表示后面有0-n个除换行符 \n 之外的任何单字符(n为非负整数)。://(没什么可说的,我可以不添加字符)

4.

/(key*key)/:表示”ke”和”key”之间有0-n个蕉皮字符”y”(n为非负整数)。keykey(我可以不添加字符)

组合:

zkaqkeyhello://keykey

unicode编码一下:

zkaqkeyhello%3a//keykey

本文发布于:2023-04-07 12:56:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/7e1d4bd9835a377417b0fe7519a1b7d5.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:正则表达式匹配题.doc

本文 PDF 下载地址:正则表达式匹配题.pdf

下一篇:返回列表
标签:宋体   字符   字符串   整数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图