• 正则表达式语法简介


      参考资料:

      https://www.runoob.com/regexp/regexp-tutorial.html

      凌老师课件

      新学期选修了一门自然语言处理(Natural Language Processing)课,第一周讲了三个内容:正则表达式(Regular Expression)、有限状态自动机(Finite State Automata)和分词(Word Segmentation)。这三个内容里最浅显易懂并且实用的就当属正则表达式了。本篇随笔就想着整理一下学到的东西,目的是让能够看懂RE而不是会写RE(因为根据不同的特定需求需要精心设置模式),这样以后要用到RE的时候就可以点开自己的博客,不必耗费多余的时间成本。废话少说,下面介绍:

      语法是核心:

      1. 析取

      Letters inside square brackets[]

    Pattern Matches
    [wW]oodchuck Woodchuck, woodchuck
    [1234567890] Any digit

      Ranges[A-Z]

    Pattern Matches  
    [A-Z] An upper case letter Drenched Blossoms
    [a-z] A lower case letter my beans were impatient
    [0-9] A single digit Chapter 1:

      总结:析取的用法和方形中括号密切相关,在方形中括号内输入并列的几个单字符或者,一个Ranges即范围。代表此处的字符是“或”的意义。

      2. 否定

      首先要科普一下,键盘上的这个符号“^”的英文名是Carat[ˈkærət]。这个Carat表示否定仅当它是方括号的第一个字符。否定的例子和析取非常像,直接看例子(其中后两个例子是^不表示否定的情况):

    Pattern Matches  
    [^A-Z] Not an upper case letter Oyfn pripetchik
    [^Ss] Neither 'S' nor 's' I have no exquisite reason
    [e^] Either e or ^ Look here
    a^b The pattern a carat b Look up a^b now

      

      3. 限定符

      主要是'?'、'*'、'+'、'.',为突出本手册的简明性,直接举几个栗子

    Pattern

    Matches

     

    colou?r

    Optional previous char

    color colour

    oo*h!

    0 or more of previous char

    oh! ooh! oooh! ooooh!

    o+h!

    1 or more of previous char

    oh! ooh! oooh! ooooh!

    baa+

     

    baa baaa baaaa baaaaa

    beg.n

     

    begin begun begun beg3n

      总结:1)?表示前一个字符可有可无

      2)* 表示前一个字符可以有0个或者多个

      3)+ 表示前一个字符至少有一个

      4). 表示该位置可以用匹配除 和 之外的任何字符

      4. 锚号(Anchors)

      锚号即定位符,能够匹配字符串特定位置的元素。^匹配字符串首,$匹配字符串末。

    Pattern Matches
    ^[A-Z] Palo Alto
    ^[^A-Za-z] 1  "Hello"
    .$ The end.
    .$ The end?  The end!

      

      以上四个就是最基本的语法,现在你已经能够理解很大一部分最简单的Pattern了,更多的复杂语法可以在参考资料一的菜鸟教程里查找到,日后有时间也会更新在这里。

  • 相关阅读:
    通用工业协议(CIP)形式化的安全分析(前期概念的梳理)
    WEB安全工程师整理资料
    AWVS (Acunetix Web Vulnerability Scanner )
    Java Decompiler反编译Jar文件
    信息安全面试题整理
    工业网络安全 智能电网,SCADA和其他工业控制系统等关键基础设施的网络安全(总结)
    PLC编程的基础知识的总结
    协议安全分析方法的综述
    The Essential Burp Suite
    kali linux 虚拟机克隆之后版本回退问题
  • 原文地址:https://www.cnblogs.com/chester-cs/p/13704202.html
Copyright © 2020-2023  润新知