4.1. 引言

未匹配的标注

4.1 引言

当一个小孩努力理解一个习语的意思,比如““Someone let the cat out of the bag ”(有人泄露了秘密)——时,你可能会帮忙解释它只是一个表达,并不是字面上的意思。

一个表达式——甚至在电脑术语中——不是按字面意思去解释的,它是需要求值的东西。一个表达式描述了一个结果。

在本章中,我们将学习正则表达式语法。一个正则表达式描述了一个模式或一组特定的字符序列,尽管它不一定指定一个确切的序列。

虽然正则表达式是 UNIX 的一个基本部分,但并不是每个人都完全理解了它的语法。事实上,下面这个表达式可以让人感到非常困惑:

^□□*.*

它使用了元字符或特殊符号来匹配带有一个或多个前置空格的行。(在我们的例子中,一个正方形盒子□用来显示空格。)

如果你在日常工作中使用任何 UNIX 文本编辑器,你可能对正则表达式有些熟悉。 grep,sed 和 awk 都使用正则表达式。然而不是在正则表达式语法中使用的所有元字符在这三个程序都可用。元字符的基本集是随着 ed 行编辑器被引入的,然后在 grep 中也可用。 sed 使用了同一套元字符集。随后一个名为 egrep 的程序被引入来提供一套扩展的字符集。 awk 基本上使用和 egrep 同一套元字符集。

为理解正则表达式语法,你必须学习不同元字符的功能。但是你还必须学习它们在不同组合下工作的许多例子。这就是本章中我们的方法——介绍每一个元字符,然后提供许多例子。大部分例子使用 grep 和它的表亲 egrep 来展示实用的应用程序。

如果你已经理解了正则表达式语法,请跳过这一章。正则表达式元字符的完整列表能在 表格 3-1,还有在附录 A —— sed 快速参考 和 附录 B —— awk 快速参考中找到。对于那些有兴趣的人,O’Reilly’s Mastering Regular Expressions, by Jeffrey E. F. Friedl 这本书详细介绍了正则表达式的构造和使用。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~