网络安全从入门精通 (第二章-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(写入文件的地址,写入的文件内容)

与君共勉:

  未来会怎样,

  要用力走下去才知道,

  你既然认准了一条路,

  又何必去打听要走多久。

  先变成更喜欢的自己,

  路还长,天总会亮。

posted @ 2020-03-24 23:46  TheHIde  阅读(365)  评论(0编辑  收藏  举报