Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1542760
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类: LINUX

2009-02-03 16:48:08

1.修饰匹配次数的特殊符号





操作符






效果
. 匹配任何单个字符。
? 之前的项目是可选的,匹配最多一次。
* 匹配出现零次或者多次的先前项目。
+ 匹配一次或者多次先前项目。
{N} 精确匹配N次先前的项目。
{N,} 先前的项目匹配N或者更多次。
{N,M} 先前的项目匹配至少N次,但是不多于M次。
- 表示范围如果不是列表中最先或者最后或者一个范围的结束点。
^ 匹配行开始的空字符串;也表示不在列表范围内的字符。(与字符串开始的地方匹配,不匹配任何字符)
$ 匹配行末的空字符串。(与字符串结束的地方匹配,不匹配任何字符)
\b 匹配词两边的空字符串。
\B 匹配提供的空字符串Matches the empty string provided it's not at the edge of a word.(

匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符

\< 匹配任何词开头的空字符串。
\> 匹配任何词结尾的空字符串。

2.能够与 '多种字符' 匹配的表达式

    正则表达式中的一些表示方法,可以匹配 '多种字符' 其中的任意一个字符。比如,表达式 "\d" 可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。这就好比玩扑克牌时候,大小王可以代替任意一张牌,但是只能代替一张牌。

表达式

可匹配

\d

任意一个数字,0~9 中的任意一个

\w

任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个

\s

包括空格、制表符、换页符等空白字符的其中任意一个

.

小数点可以匹配除了换行符(\n)以外的任意一个字符


  举例,表达式:"a.\d",在匹配"aaa100"的时候,匹配的结果是:成功;匹配到的内容是:"aa1";匹配到的位置是:开始于1,结束于4。

3.自定义能够匹配 '多种字符' 的表达式

    使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。

表达式

可匹配

[ab5@]

匹配 "a" 或 "b" 或 "5" 或 "@"

[^abc]

匹配 "a","b","c" 之外的任意一个字符

[f-k]

匹配 "f"~"k" 之间的任意一个字母

[^A-F0-3]

匹配 "A"~"F","0"~"3" 之外的任意一个字符




任何带有特殊含义的字符可以以反斜杠开头来进行引用。

2个正则表达式可以连接起来;结果正则表达式匹配任何字符串。the resulting regular expression matches any string formed by concatenating two substrings that respectively match the concatenated subexpressions.

2个正则表达式可以用中缀操作符 “|” 连接起来;作为结果的正则表达式匹配任何匹配字表达式的字符串。

循环任务优先于串联,轮流接管优先级。整个子表达式可以放入括号中来忽略这些优先级规则。

在基本正则表达式中统配符 “?”, “+”, “{”, “|”, “(”, 和 “)” 失去了它们的特殊含义;取而代之的是斜杠版本 “\?”, “\+”, “\{”, “\|”, “\(”, 和 “\)”.

检查你的系统文档确定使用正则表达式的命令是否支持扩展表达式。





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