• 正则表达式


    提供了这样一种机制,我们可以用来从字符串中匹配特定字符串。如今规则表达式已经是一个ISO标准。

    规则表达式是一种内容无关的语法。下面来解释它的一些基本操作符。

    1、字符匹配操作符

    .匹配任何一个字符,如".ord"可以匹配"lord","cord","2ord"等等。

    []匹配任何一个在中括弧中列出的字符。如"[a-z]ord"可以匹配"aord","bord","ford"等等。如果在[]中使用-,就表示某个范围,其前后两个字符号是范围的边界。要在字符类中匹配连字符,那么把连字符号作为第一个字符列出即可。

    [^]匹配任何一个不在中括弧中列出的字符。如"[^ab]ord"可以匹配"cord","dord",但不能匹配"aord","bord"。

    2、重复操作符

    ?匹配任何字符一次,如果这个字符号存在的话。如"?erd"可以匹配"erd","aerd","berd"等等。

    *匹配声明的字符零到多次。如“n.*rd”可以匹配“nerd”,“nrd”,“neard”等等。

    +匹配声明的字符至少一次。如“[n]+erd”可以匹配“nerd”,“nnerd”,但不能匹配“erd”。

    {n}匹配声明的字符n次。如“[a-z]{2}erd”可以匹配“cherd”,“blerd”,etc。但不能匹配“nerd”,“erd”,“buzzerd”。

    {n,}匹配声明的字符至少n次。如“.{2,}erd”可以匹配“cherd”and“buzzerd”,但不能匹配“nerd”。

    {n,m}匹配声明的字符n到m次。如“n[e]{1,2}rd”可以匹配“nerd”and“neerd”。

    3、定位操作符

    ^一行的开始位置

    $一行的结束位置

    <某个单词的开始位置

    >某个单词的结束位置

    某个单词的开始位置或者结束位置

    B某个单词的中间位置

    4、组合操作符

    ()表示()内是几个规则表达式的组合。如“([a]|[]b)erd"匹配"aerd","berd"。

    5、交替操作符

    |匹配|前后两组规则表达式。如“([a]|[b])erd"匹配"aerd","berd"。

    6、保留字

    以下这些字符在规则表达式语法中是有特殊意义的字符,不能被直接当字符来使用。这些字符被称为保留字。

    ^(carat)

    。(period)

    [(leftbracket}

    ](rightbracket}

    $(dollarsign)

    ((leftparenthesis)

    )(rightparenthesis)

    |(pipe)

    *(asterisk)

    +(plussymbol)

    ?(questionmark)

    {(leftcurlybracket,orleftbrace)

    }(rightcurlybracket,orrightbrace)

    ackslash

    如果想使用保留字作为实际字符来使用,需要在该保留字前面加反斜线blackslash()

    在一些unix工具中,一般用正斜杠slash(/)包围所描述的规则表达式,如[A-Z]+(abc|xyz)*/

    某些规则表达式工具或某些语言中还定义了一些转义的字符,比如w代表空白字符,d代表数字,就相当于定义了[]和[0-9]的快捷方式。当使用具体大工具或语言的规则表达式时,要去了解这些特定的定义。

    下面以Java中规则表达式为例,演示如何在Java中使用规则表达式。

    1、匹配字符串是否

    Pattern。mateches("[[0-9]{2}","00");#returntrue

    Pattern。mateches("[[0-9]{2}","a00");#returnfalse

    Pattern。mateches("[[a-z0-9]*","a00");#returntrue

  • 相关阅读:
    codeforces 652B z-sort(思维)
    poj 3268 Silver Cow Party(最短路)
    POJ 2243:Knight Moves(BFS)
    POJ 1107:W's Cipher(模拟)
    POJ 1008 Maya Calendar(模拟)
    Hdu3436-Queue-jumpers(伸展树)
    主席树的另一种写法
    Hdu5785-Interesting(回文串处理)
    Hdu5008-Boring String Problem(后缀数组)
    RMQ模板
  • 原文地址:https://www.cnblogs.com/hjyxbfz/p/7526078.html
Copyright © 2020-2023  润新知