--------------------------------------------------------------------------------------
此系列是Mastering Regular Expressions的学习要点!
有兴趣的朋友可以使用邮箱和我沟通!(非常欢迎你的交流)
我的邮箱: veic_2005#163.com(把#替换为@)
------------------------------------------------------------------完美的分割线---
Chapter 1. Introduction to Regular Expressions
正则定义:
l能检查多个文件,挑出包含重复单词的行,高亮标记每个重复单词(using standard ANSI escape sequences), 同时必须显示这行文字来自哪个文件。
l能跨行查找,即使两个单词一个在某行末尾而另一个在下一行的开头,也算重复单词。
l能进行不区分大小写的查找,例如’The the…’,重复单词之间可以出现任意数量的whitespace (spaces, tabs, newlines, and the like)。
l能查找用HTML tag分隔的重复单词。HTML tag用于标记网页上的文本,例如,粗体单词是这样表示的:’…it is <B>very</B> very important…’。
Regularexpressions can add, remove, isolate, and generally fold, spindle, and mutilateall kinds of text and data.
1.1 Solving Real Problems
正则的应用范围:
文本类型的数据。例如,处理E-mail的发件人、标题、正文等等
1.2 Regular Expressions as aLanguage
通配符(wildcards)的理解:
比如,在操作系统的shell中使用的”*”,但是在语言(Perl、Java、VB.NET等等)中称元字符(Meta Characters)
1.3 The Regular-Expression Frame ofMind
工具”egrep”的使用:
Figure1-1. Invoking egrep from the command line
提示:从cygwin系统中拷贝如下文件即可在Windows运行!
序号 | 文件名 |
1 | cyggcc_s-1.dll |
2 | cygiconv-2.dll |
3 | cygintl-8.dll |
4 | cygwin1.dll |
5 | egrep.exe |
1.4 Egrep Metacharacters
1.4.1 Start and End of the line
a. 开头匹配
^放在匹配字符串之前
b. 结尾匹配
$放在匹配字符串之后
1.4.2 Character classes
1.4.2.1 Matching any one of several characters
i. 正则表达式结构体
「[…]」
中括号中间的字符,是”或(|)”的关系
ii. 字符范围
‘-’连字符,表示数字或者字母的一定范围。
例如,<H[1-6]>等同于<H[123456]>;
[A-Fa-f0-9]等同于[0123456789abcdefABCDEF]
1.4.2.2 Negated character classes
「[^…]」
关于”^”,在字符组外,表示行首锚点(line anchor)。但是在字符组内部(而且必须是紧接在字符组的第一个中括号之后),它就是一个元字符。
1.4.3 Matching Any Character with Dot
元字符「.」是用来匹配任意字符。
但,在中括号([])中表示普通符号,不是元字符。