关于正则匹配语法的小小总结

常见比赛正则匹配出现在PHP和Python语句中

正则表达式:

用来匹配字符串的表达式

单字符匹配

d:匹配一个数字
w:匹配一个字母或数字
s:匹配一个空格或空白符 .:匹配任意字符
0d:匹配0加上一个数字,可以匹配07,但不匹配0A 0w:07和0A都能匹配

多字符匹配

*:表示任意个字符(>=0+:表示至少1个字符
?:表示0或1个字符
{n}:表示n个字符
{n,m}:表示n到m个字符

举例

d{3}:匹配3个数字
w{3,5}:匹配3到5个数字或字符

范围匹配

[0-9\_]:匹配一个数字或者下划线(转义)
[0-9a-zA-Z]:匹配一个数字或者大小写字母
[a-zA-Z][0-9]{0.3}:匹配大小写字母开头,加上后面最多3个数字的字符
^d:匹配数字开头字符
d$:匹配以数字结束字符

PHP的preg_match

在preg_match中竖线等于逻辑或,/是正则perl风格的写法,置于头尾

举例

if(preg_match('/s+/',$GET["name"]))
    {
        die("ERROR");
    }

用于匹配至少一个空格和空白字符

if(!(preg_match('/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/',GET['ip'])))
    {
        echo('false');
    }

用于匹配以数字开头,以数字结尾,至少4位,最多12位的ip地址

[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
原文地址:https://www.cnblogs.com/echoDetected/p/13040205.html