笔记:PHP中的正则表达式

喜欢悠哉独自在   ·   发表于 2022-03-04 16:17:58   ·   学习杂记

后端基础PHP-正则表达式

一、初识SQL注入

(一)数据库代码

mysql代码、SQL语句
渗透测试的命脉就是传参

(二)SQL注入

将用户的输入的数据当初数据库语句执行
正则来过滤传参
过滤 => 把脏的东西过滤掉(规则)
计算机中的过滤是人设定的规则

二、什么是正则表达式

(一)正则表达式,又称规则表达式。

(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

(二)正则表达式的特点

1、灵活性、逻辑性和功能性非常强;
2、可以迅速地用极简单的方式达到字符串的复杂控制。
3、对于刚接触的人来说,比较晦涩难懂。

(三)正则表达式用途

1、判断字符串是否符合某一规则(判断是否符合手机号、邮箱规则)
2、从一个字符串中找出符合规则的所有子字符串(取HTML标签名)

三、PHP中正则表达式常用函数

PHP中使用正则规则一定要加代表正则的标识/ /

1、preg_match_all(正则表达式,匹配字符串)
返回匹配到的次数

2、preg_replace (正则表达式,替换成什么,匹配字符串)
返回替换后的结果

3、替换支持数组格式

四、正则表达式语法

(一)字符-1

常用转义字符:
数字:\d
非数字:\D
空白字符(空格、制表符、换页符等):\s
非空白字符:\S
单词字符(26个英文字母+数字+下划线_):\w
非单词字符:\W

(二)字符-2

自定义字符结合
字符集合:[单个字符或字符区间],用于匹配集合内字符

如:
[a-z]表示a-z这26个小写字母
[0-9a-z]表示0-9这10个数字和a-z26个小写字母
[135a-h]表示包含数字1,3,5和字母a-h这8个字母
注意:两个不同字符段间请勿使用,隔开。
非集:[^单个字符或字符区间],用于匹配非集合内字符。

如:
[^0-9]表示匹配所有非数字字符。
[^a-zA-Z]表示匹配所以非字母字符。

(三)关键字

() => 和数学一样很像,代表这是一个整体。
^ => 匹配输入字符串的开始位置
$ => 匹配输入字符串的结尾位置
. => 通配符[代表任意字符][不匹配换行]

  • => 匹配0次或者多次
  • => 匹配1次或者多次
    \ => 转义字符
    | => 两项之间的一个选择。
    【注意】.* 是匹配除了换行之外的一切

(四)限定符 + 修饰符

限定符

{n} => 例如: 0{8} 意思是指 只有连起来8个0才会被匹配

{n,} => 例如: 0{2,} 意思是 只要有2个0及其以上的就会被匹配

{n,m} => 例如: 0{2,4} 意思是最少匹配2个0,最多匹配4个0

注:被匹配时,默认匹配最多的次数

修饰符

/i => 不区分大小写
/A => 匹配规则必须从头开始匹配
/s => .将匹配一切字符
/x => 正则表达式中的空白字符会被忽略

CTF比赛,比赛并不符合实战

打赏我,让我更有动力~

0 条回复   |  直到 2022-3-4 | 667 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.