正则表达式是大量文本处理的基础, UNIX的grep命令就是基于正则表达式的, 很多文本处理语言(如AWK, PERL以及PHP)也都将支持正则表达式作为必备的功能.
正则表达式的基本思想是: 定义一个模式, 在文本中搜索这个模式. 新的功能的引入伴随着新的特殊符号的引入. 这种描述风格自30年前由UNIX的grep命令引入后, 一直流行到现在, 甚至从未进行过大量的修改.
模式中的任何放在括号中的内容都可以作为一个子模式.
正则表达式实际上时一种表达字符模式的语言, 只不过这种语言的规模很小. 它是一种强大(表达能力强)而简洁的语言. 经过几十年的使用, 产生了很多微妙的特性和"方言".
请记住, "使用最多的特性"不是一个好的程序设计风格. 无论什么时候, 都请替可怜的程序维护人员着想, 他要阅读并理解你的代码:因此编写代码时不要炫耀你的聪明, 并且避免使用哪些晦涩难懂的特性.
正则式的强大来自于具有特殊含义的"特殊字符"以及字符组合:
特殊含义的字符:
. 任意单个字符(通配符)
[ 字符集
{ 计数
( 子模式开始
) 子模式结束
\ 下一个字符具有特殊含义
* 0个或者多个
+ 一个或者多个
? 可选(0个或一个)
| 二选一(或)
^ 行的开始;否定
$ 行的结束
如果你想在模式中使用这些特殊符号的普通字符含义, 需要利用反斜线进行"转义". 例如, +表示"一个或多个"运算符, 而\+表示+.