网络安全从入门精通 (第二章-7) 正则表达式
本文内容:
- 什么是正则表达式
- PHP中正则表达式常用函数
- 正则表达式语法
1,什么是正则表达式?
正则表达式:又称规则表达式,在计算机科学的一个概念,正则表达式通常替换哪些符合某个模式(规则)的文本。
正则表达式特点:
1.灵活性、逻辑性和功能非常强
2.可以迅速地用既简单的方式达到字符串的复杂控制。
3.对于刚接触的人来说,比较晦涩难懂。
正则表达式用途:
判断字符串是否符合某一规则,(判断是否符合手机号、邮箱规则)。
从一个字符串中找出符合规则的所有字符串(取HTML标签)。
核心:就是查询和匹配。
现在主流防御手段,就是正则匹配,当它匹配到危险的东西,就会替换或拦截。
如果能看懂正则表达式,那么久可以绕过一些防护。
2,PHP中正则表达式常用函数:
PHP中使用正则规则一定要加代表正则的标识/ 正则 /
pred_match_all(正则表达式、匹配字符串、匹配到的东西放入数组)
返回匹配次数
pred_replace(正则表达式、替换成什么、匹配字符串)
返回替换的结果
注意:替换支持数组格式。
3,正则表达式语法:
常用转移字符:
数字:\d
非数字:\D
空白字符:\s
非空白字符:\S
单词字符(26个英文字母+数字+下划线):\w
非单词字符:\W
自定义字符结合
字符集合:[单个字符或字符区间],用于匹配集合内字符如:
[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]表示匹配所有非字母字符。
关键字:
{n} 例如:0{2] 意思是指只有连起来2个0才会匹配。
{2,}例如:0{2,}意思是只要有2个0及其以上的就会被匹配
{2,4}例如:0{2,4}意思是最少匹配2个0,最多匹配4个0
注意:被匹配,默认匹配最多的次数。
修饰符:
/i 不区分大小写
/A 匹配规则必须从头开始匹配
/s .将匹配一切字符
/x 正则表达式中的空白字符会被忽略
/e 代码执行preg_repalce()可以写一句话,但是不能连接菜刀
file_put_contents 函数[把字符串写入文件]
file_put_contents(写入文件的地址,写入的文件内容)
与君共勉:
未来会怎样,
要用力走下去才知道,
你既然认准了一条路,
又何必去打听要走多久。
先变成更喜欢的自己,
路还长,天总会亮。