zoukankan      html  css  js  c++  java
  • 第三章:匹配一组字符

    3.1 匹配多个字符中的某一个:

      .可以匹配任何单个字符,如果现在只想匹配na和sa,既然想匹配出n和s,在正则表达式中,我们可以用元字符 [ 和 ] 来定义一个字符集合

      文本:  

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa.xls

        ca.xls

        na.xls

      正则表达式:

        [ns]a..xls

      结果:  

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa.xls

        ca.xls

        na.xls

      分析:

        这里使用的正则表达式以[ns]开头,这个集合将匹配字符n或s(但不匹配c或其他的字符),[ 和 ] 不匹配任何字符,它们只负责定义一个字符集合

    再看一个例子(字符集合在不需要区分字母大小写的搜索操作):

      文本:

        The phrase "regular expression" is often abbreviated as RegEx or regex

      正则表达式:

        [Rr]eg[Ee]x

      结果:

        The phrase "regular expression" is often abbreviated as RegEx or regex

    3.2 利用字符集合区间

      文本:  

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa.xls

        ca.xls

        na.xls

      正则表达式:

        [ns]a[0123456789].xls
      结果:  

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa.xls

        ca.xls

        na.xls

    注意:

      模式[0123456789]和模式[0-9]完全等价

    1. A-Z:匹配A到Z的所有大写字母

    2. a-z:匹配a到z的所有小写字母

    3. A-F:匹配A到F的所有大写字母

      "-"是连字符,是一个特殊的元字符,作为元字符的它只能出现在[]之间,在[]之外,-只是一个普通的字符,只能与-本身相匹配,在正则表达式中,-不需要被转义

    [A-Za-z0-9]:表示所有的大小写字母与数字。

    3.3 取非匹配:

      除了那个字符集合里的字符,其他字符都可以匹配

      文本:  

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa1.xls

        ca1.xls

        nam.xls

      正则表达式:

        [ns]a[^0-9].xls

      结果:

        sales.xls

        sales1.xls

        sales2.xls

        na1.xls

        sa1.xls

        ca1.xls

        nam.xls

      分析:

        [^0-9]:表示匹配任何不是数字的字符

      注意:

        ^的效果是将作用于给定字符集合中的所有字符或字符区间,而不是仅限于紧跟在^字符后的面的哪一个字符或字符区间

  • 相关阅读:
    python爬虫循环导入MySql数据库
    以洛谷P2661信息传递为例总结找环的常见的几种方法
    CF1339E-Perfect Triples (打表找规律)
    CF1339D-Edge Weight Assignment (dfs)
    CF1335E2-Three Blocks Palindrome (hard version) (二分+双指针)
    CF1327D-Infinite Path (循环置换)
    洛谷P3178 [HAOI2015]树上操作 (树链剖分)
    洛谷P2590 [ZJOI2008]树的统计 (树链剖分)
    洛谷P3833 [SHOI2012]魔法树 (树链剖分)
    树链剖分板子
  • 原文地址:https://www.cnblogs.com/changlezhong/p/9094616.html
Copyright © 2011-2022 走看看