Chinaunix首页 | 论坛 | 博客
  • 博客访问: 127461
  • 博文数量: 23
  • 博客积分: 560
  • 博客等级: 中士
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-07 22:58
文章分类

全部博文(23)

文章存档

2012年(6)

2011年(17)

分类: LINUX

2011-04-07 23:02:51

元字符详解:

位置:
^ 一行的开始
$ 一行的结尾

字符组:

[...]  结构体,容许使用则列出某处期望匹配的某一个字符
-  连字符 表示一个范围  举例: 一样
                                [0-9A-Z_!.?]表示匹配一个数字、大写字母、下画线、惊叹号、点号、问好

排除型字符组
[^...]  表示不匹配    举例:  [^1-6] 匹配除了1至6以外的任何字符

. 匹配任意一个字符      举例: 要匹配 03/19/76、 03-19-76、或者03.19.76
                            可以写成,:  03[/-.]19[/-.]76   复杂,但精确   
                            更简单的写法:  03.19.76         简单,但不精确


| 或
() 划定多选结构的范围        举例:   gr[ea]y 相同 grey|gray 相同 gr(e|a)y
                                   错误: gr[e|a]y 在这里|是字符不是元字符

egrep -i   不区分大小写

单词分界符: 
eqgrep 支持 元字符序列  \< 和 \>
                        <和>本身不是元字符 只有当与斜线结合才是。

量词:
可选项元素
? 代表可选项,只作用于之前紧邻的元素,只匹配一次
                    列子:需要匹配7月4日 (july fourth) 月可以写成July或是Jul, 日期可以写成fourth、4th、4。
                         写法:   egrep -i 'july?.(fourth|4(th)?)

+  作用于之前紧邻的元素可匹配多次,但自少一次
*  作用于之前紧邻的元素可匹配多次,没限制


区间量词 {min,max}
举例:
[a-zA-Z]{1,5} 表示1到5个字母


反向引用: 容许匹配与表达式先前部分匹配的同样文本。  () () ()对应 \1 \2 \3
([a-z])([0-9])\1\2 

转义
\元字符 将当作字符串使用

变量名匹配  标识符只包含字母、数字及下划线 [a-zA-Z_][a-zA-z0-9_]* 有长度限制则[a-zA-Z_][a-zA-z0-9_]* {0,31}

引号内的字符串
  匹配 "[^"]*"

美金金额 (包含两位小数)

    匹配  \$[0-9]+(\.[0-9][0-9])?

HTTP/HTML URL
   匹配  \
   简单匹配  \


HTML tag
匹配: <.*>

时间
匹配: (1[012]|[1-9]):[0-5][0-9].(am|pm)
24小时匹配 \<([01]?[0-9]|2[0-4]):[0-5][0-9]\>



元字符:

\t 制表符

\n 换行符

\r 回车符

\s 任何空白字符 (空格符、制表符、进纸符)

\S 除\s之外的任何字符

\w  [a-zA-Z0-9] (在 \w+ 可以匹配单词)

\W  除\w之外的任何字符

\d [0-9],即数字

\D 除\d的任何字符

/i  不区分大小写

\b  perl单词分隔符,  egrep 的单词分隔符用\< \>




                       



阅读(1212) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:解决sockets大量TIME_WAIT

给主人留下些什么吧!~~