\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配
[[:punct:]]代表任意一个字符,包括各种符号
“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。
单独的“?”:匹配前面的子表达式零次或一次。
“@”在写文件路径时的作用是忽略转义字符
正则表达式中,为了防止编译器将某些字符作为C#语言来识别,截断该字符串的情况,在该字符串前加一个"@"就是告诉编译器,这些特殊字符是作为字符串中的一部分存在的,编译器就不会去编译它了. 比如路径前加一个@,路径中的/就不会被编译了
1.(?:abc)表示找到这样abc这样一组,但不记录,不保存到 $变量中,否则可以通过 $x取第几个括号所匹配到的项,比如:(aaa)(bbb)(ccc)(?:ddd)(eee),可以用$1获取(aaa)匹配到的内容,而$3则获取到了(ccc)匹配到的内容,而$4则获取的是由(eee)匹配到的内容,因为前一对括号没有保存变量
2.a(?=bbb) 顺序环视 表示a后面必须紧跟3个连续的b
3.(?i:xxxx) 不区分大小写
4.(?s:.*) 跨行匹配.可以匹配回车符
圆括号可以匹配多个连续的字符,而一对方括号只能匹配单个字符
5.(ab){1,3},就表示ab一起连续出现最少1次,最多3次。
6.[(a)],会匹配 ( 和 a 和 ) 和这三个字符。
–
(a.)*表示匹配字母a和任意字符的组合若干次,而a.*表示匹配一个字母a和若干个任意字符。
bugku中的一道字符?正则?
trim()函数:移除字符串两侧的字符
trim(string,charlist)
比如echo trim($str,“Hed!”); #输出的就是str字符串中除去Hed!的部分
trim的意思是修建
preg_match() 函数:用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。
preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all() 函数。
die()函数:停止程序运行,输出内容
die(),exit(),return的区别
exit(0):正常退出
exit(1):非正常退出
return是关键字,exit()和die()是函数
来个符合正则的就可以得到flag了
?id=key22key3333key:/3/3keya: