正则表达式——RE
前言
最近一段时间在研究nginx的REWIRTE重写机制,因此对RE需要有一定的了解,看了想关的文章,因此自己来写一篇类似总结性的的文章。
1.什么是正则表达式
基本来说,正则表达式是一种用来描述一定数量文本的模式。regex=Regular Express。本文用<< regex>>来表示一段具体的正则表达式。一段文本就是最基本的模式,简单的匹配相同的文本。
2.不同的正则表达式引擎
正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大应用程序的一部分,我们集中讨论的是prel 5引擎。
3.文字符号
最基本的正则表达式是由单个文字符号组成。如<<a>>,它将匹配字符串中第一次出现的字符“a”。例如字符串“wangzhengyi is a boy”。"w"后的“a”将被匹配,而第二个“a”将不会被匹配。
正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。在文本编辑器中,你可以使用“查找下一个”。在编程语言中,会有一个函数可以使你从前一次匹配的位置开始继续向后搜索。
类似的,<<cat>>会匹配“About
cats and dogs”中的“cat”。这等于是告诉正则表达式引擎,找到一个<<c>>,紧跟一个<<a>>,再跟一个<<t>>。
要注意,正则表达式引擎缺省是大小写敏感的。除非你告诉引擎忽略大小写,否则<<cat>>不会匹配“Cat”。
特殊字符
对于文字字符,有11个字符被保留作特殊用途。他们是:
[ ] \ ^ $ . | ? * + ()
这些特殊字符也被称作元字符。