Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3311537
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类: LINUX

2008-11-14 15:37:46

第 4 章 正则表达式

目录

摘要

本章我们讨论:

  • 使用正则表达式

  • 正则表达式统配符

  • 文件和输出中的找寻模板

  • Bash中字符的范围和分类

4.1. 正则表达式

4.1.1. 什么是正则表达式?

正则表达式 是一个描述一组字符串的模板。正则表达式是使用多种操作符来组合更小的表达式构建类似算术表达式。

建立块的基本原则是正则表达式匹配一个单字符。多数字符,包括所有的字幕和数字,都是匹配它们自己的正则表达式。任何带有特殊含义的字符可以以反斜杠开头来进行引用。

4.1.2. 正则表达式特殊字符

正则表达式可以跟随几个重复操作符(统配符):

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

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

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

4.1.3. 基本和扩展正则表达式

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

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

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