zoukankan      html  css  js  c++  java
  • 网络安全从入门精通 (第二章-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(写入文件的地址,写入的文件内容)

    与君共勉:

      未来会怎样,

      要用力走下去才知道,

      你既然认准了一条路,

      又何必去打听要走多久。

      先变成更喜欢的自己,

      路还长,天总会亮。

  • 相关阅读:
    面向对象实验 ——(二)类与对象
    [LeetCode] 957. Prison Cells After N Days
    [LeetCode] 32. Longest Valid Parentheses
    [LeetCode] 120. Triangle
    [LeetCode] 441. Arranging Coins
    [LeetCode] 79. Word Search
    [LeetCode] 1143. Longest Common Subsequence
    [LeetCode] 718. Maximum Length of Repeated Subarray
    [LeetCode] 332. Reconstruct Itinerary
    [LeetCode] 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/xz25/p/12563267.html
Copyright © 2011-2022 走看看