Chinaunix首页 | 论坛 | 博客
  • 博客访问: 714303
  • 博文数量: 67
  • 博客积分: 3148
  • 博客等级: 中校
  • 技术积分: 1084
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-10 14:33
文章分类

全部博文(67)

文章存档

2013年(2)

2012年(11)

2011年(33)

2010年(21)

我的朋友

分类:

2012-02-03 11:47:49

    正则表达式的语法规则

    正则表达式由普通字符和特殊字符组成。

  1. 普通字符
    普通字符匹配的对象是普通字符本身。包括所有的大写和小写字母、数字、标点符号以及一些特殊符号。例如:a匹配abc中的a,202匹配202.113.25.155,@匹配xxx@xxx.com中的@。
  2. 特殊字符
    特殊字符配合普通字符匹配复杂或特殊的字符串组合。
    是对特殊字符及其语法意义的使用描述。
  3. 特殊字符

    功能

    举例

    \

    转义字符。将下一个字符(特殊字符或者普通字符)标记为普通字符。

    \*匹配*

    ^

    匹配行首的位置。

    ^10匹配10.10.10.1,不匹配20.10.10.1

    $

    匹配行尾的位置。

    1$匹配10.10.10.1,不匹配10.10.10.2

    *

    匹配前面的子正则表达式零次或多次。

    10*可以匹配1、10、100、1000、……

    (10)*可以匹配空、10、1010、101010、……

    +

    匹配前面的子正则表达式一次或多次。

    10+可以匹配10、100、1000、……

    (10)+可以匹配10、1010、101010、……

    ?

    匹配前面的子正则表达式零次或一次。

    10?可以匹配1或者10

    (10)?可以匹配空或者10

    .

    匹配任意单个字符。

    0.0可以匹配0x0、020、……

    .oo.可以匹配book、look、tool、……

    ()

    一对圆括号内的正则表达式作为一个子正则表达式,匹配子表达式并获取这一匹配。圆括号内也可以为空。

    100(200)+可以匹配100200、100200200、……

    x|y

    匹配x或y。

    100|200匹配100或者200

    1(2|3)4匹配124或者134,而不匹配1234、14、1224、1334

    [xyz]

    匹配正则表达式中包含的任意一个字符。

    [123]匹配255中的2

    [^xyz]

    匹配正则表达式中未包含的字符。

    [^123]匹配除123之外的任何字符

    [a-z]

    匹配正则表达式指定范围内的任意字符。

    [0-9]匹配0到9之间的所有数字

    [^a-z]

    匹配正则表达式指定范围外的任意字符。

    [^0-9]匹配所有非数字字符

    _

    匹配一个逗号(,)、左花括号({)、右花括号(})、左圆括号、右圆括号。

    匹配输入字符串的开始位置。

    匹配输入字符串的结束位置。

    匹配一个空格。

    _2008_可以匹配2008、空格2008空格、空格2008、2008空格、,2008,、{2008}、(2008)、{2008、(2008}

    表1 特殊字符及其语法意义描述

     

    在命令中指定过滤方式

    在支持正则表达式的命令中,有三种过滤方式可供选择:

  4. | begin regular-expression:输出以匹配指定正则表达式的行开始的所有行。
  5. | exclude regular-expression:输出不匹配指定正则表达式的所有行。
  6. | include regular-expression:只输出匹配指定正则表达式的所有行。
  7.  

    在分屏显示时指定过滤方式

    采用分屏显示时,可以在分屏提示符“---- More ----”中指定过滤类型:

  8. /regular-expression:输出以匹配指定正则表达式的行开始的所有行。
  9. -regular-expression:输出不匹配指定正则表达式的所有行。
  10. +regular-expression:只输出匹配指定正则表达式的所有行。
  11.  

阅读(7597) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~