zoukankan      html  css  js  c++  java
  • 正则表达式

    正则表达式

    字符串的规则,给字符串定义一个规则

    作用:

    1  检测某一段字符串是否符合规则

    2  从一大段文字中将符合规则的匹配出来
    多用于爬虫中

    规则;

    元字符:

      匹配的是一个字符串的内容

    量词: 

      匹配的次数

    字符组:

    数字

    [0123456789]       #表示0到9之内的数字

    [0-9]       #表示0到9之内的数字

    不能使用[9-0],正则表达式不能从大到小,只能从小到大

    因为正则表达式的大小都是根据ASCII码表来判断的

    字母

    [a-z]      #小写字母

    [A-Z]      #大写字母

    [A-Za-z]      #大写字母和小写字母

    [A-Za-z0-9]           #大小写字母和数字

    [A-Za-z0-9_]   大小写字母,数字和下划线,(想要什么符号可以在括号内添加)

    顺序可以改变,如果使用需要查找特殊字符需要使用转义字符

    元字符

    d      #所有的数字

    w           # 所有的数字字母下划线

          #换行符

           #制表符

    s      #所有的空格,包括换行符和制表符

          # 表示一个单词的边界(放在字符的前面表示是否是这个字符结尾,放在字符的后面,判断是不是这个字符开头)

    反义词

    W        #除了数字字母下划线的所有
    D        #除了数字的所有
    S        #除了空白的所有
    .          #除了换行符之外的所有
    dD       #匹配所有
    wW       #匹配所有
    sS       #匹配所有

    非字符组:

    [^123]     #除了123之外的所有值

    ^       #开头 一个字符只有一个开始,必须在开头

    $      #结尾  一个字符只有一个极为,必须在末尾

    ###如果使用^开头,使用$结尾,这个字符串的长度就被规定死了,
    |        # 或者,左边的内容和右边的内容都是全集,且需要筛选的内容要与左边或者右边的内容全部相同。且,字符串长的必须放在符号的左边

    www.(baidu|oldbay).com 小括号表示分组,正则表达式会对括号内的内容进行匹配(类似于算运算的优先级)

    量词

    量词 {}:   在量词的范围内尽可能多的匹配
    d{9}          表示前面的紧挨着的规则必须连续出现
    {n}           表示出现n次
    {n,}          表示至少出现n次
    {n,m}         表示出现n到m次
    ?          表示匹配0次或1次(用来查看某个字符是否存在,如果存在只能存在一次)
    +          表示1次或多次
    *          表示匹配0次或多次

    正则表达式的特性:


    贪婪匹配(a.*x) :默认的
        将所有的字符串都查询,然后反向查找第一个x取正向查的a到反向查的第一个x
        在量词匹配时,尽可能多的匹配,查找从a开始到最后一个x之间的所有数据

    惰性匹配(a.*?x) :需要手动输入
        每查询一个值,就先看不是不是x,不是就交给.*处理
        尽可能的少匹配,查找从a开始到x之间的所有数据

  • 相关阅读:
    PTA 两个有序链表序列的合并
    PTA 递增的整数序列链表的插入
    PTA 链表逆置
    PTA 带头结点的链式表操作集
    _KPCR, _NT_TIB, _KPRCB
    FSOP
    逆向PspCreateProcess
    寒假训练 [GKCTF2020]Domo(4/250) 劫持vtable
    IO_FILE利用与劫持vtables控制程序流程、FSOP
    线程结构
  • 原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10572153.html
Copyright © 2011-2022 走看看