正则表达式学习3

来源:互联网 发布:数据库电子书下载 编辑:程序博客网 时间:2024/06/06 10:50

边界与量词

  • 行或者字符串的起始与结束位置
  • 单词边界(两种)
  • 量词特性
  • 量词实例

行的起始与结束

  • 输入:^
    匹配行或者字符串的起始位置。有的时候会匹配整个文档的起始位置(看你使用的工具搜索方式)。
  • 输入:$
    匹配行或者字符串的结尾位置

单词边界与非单词边界

  • 输入:\bTHE\b
    \b为零宽度断言(看起来不存在)即它会匹配空格或者行起始。
  • 输入:\BTHE\B
    匹配非单词边界,非单词边界为除单词边界之外的,比如1e3。匹配了e

量词

量词的特性

  1. 贪心
     首先匹配整个字符串。尝试匹配时,它会选定尽可能多的内容,即整个输入。贪心过程会回朔,回朔即首次尝试整个整个字符串,若失败就回退一个字符后再尝试。
  2. 懒惰
     它从目标的起始位置开始尝试寻找匹配,每次检查字符串的一个字符,寻找匹配它要的内容。最后,尝试匹配整个字符串。使一个量词成为懒惰,必须在普通量词后添加一个问号(?)。它每次吃一点
  3. 占有
     会覆盖整个目标后尝试寻找匹配内容。但是它尝试一次,不会回朔。一般是在普通量词后添加一个加号(+)。不咀嚼,直接吞。

基本量词

  • ? 懒惰量词    零个或者一个(可选)
  • +   占有量词    一个或者多个
    • 贪心量词    零个或者多个

    实例:  
       888888
       9999999
      0000000000

  • 输入: .*
    它以贪心方式匹配文本中所有字符,所有(8和9)。点号表示任意字符

  • 输入: 9*
    它匹配9那行,匹配9零次或者多次
  • 输入: 9.*
    它匹配9和0那行,匹配9到后面.的数字。
  • 输入:  9+
    它匹配9那行,因为+表示一次或者多次
  • 输入:  9?
    它匹配9那行的第一个9(第一次出现了匹配)。
  • 输入:  99?
    它匹配第一个9和第二个9。

匹配特定次数

 使用花括号可以限制某个范围内匹配的次数,未经修饰的量词就是贪心量词。

  • 输入:7{1}
    会匹配第一次出现的7
  • 输入:7{1,}
    会匹配一个或者对个7

    由上知:7+和7{1,} 7*与7{0,} 7?和7{0,1}效果都是一样

  • 输入:匹配m到n次
    比如7{3,5}会匹配7,三个、四个及五个
     
    总结
  • {n} 精确匹配n次
  • {n,} 匹配n次或者更多次
  • {m,n} 匹配m至n次
  • {0,1} ?相同
  • {1,} +相同
  • {0,} *相同

懒惰量词

  • 语法:?? 描述:懒惰匹配零次或一次(可选)
    实例:5? 匹配一个5   5??:不匹配任何内容,多加一个?使得模式变得懒惰,尽可能匹配少的字符

  • 语法:+? 描述:懒惰匹配一次或者多次
    实例:5+? 只匹配一个5

  • 语法:*? 描述:懒惰匹配零次或者多次
    实例:5*? 不匹配任何内容,因为它选择匹配最少的次数——零次

  • 语法:{n}? 描述:懒惰匹配n次

  • 语法:{n,}? 描述:懒惰匹配n次或者多次
  • 语法:{m,n}? 描述:懒惰匹配m至n次
    实例:5{2,5}? 只匹配两个5

占有量词

0 0
原创粉丝点击