1.linux中正则表达式引擎现状
在Linux中,有两种流行的正则表达式引擎:
426 第 20 章 正则表达式
POSIX基础正则表达式(basic regular expression,BRE)引擎
POSIX扩展正则表达式(extended regular expression,ERE)引擎
大多数Linux工具都至少符合POSIX BRE引擎规范,能够识别该规范定义的所有模式符号。
特殊字符
在正则表达式中定义文本字符时有些字符在正则表达式中有特别的含义。如果要用某个特殊字符作为文本字符,就必须转义。在转义特殊字符时,你需要在它前面加一个特殊字符来告诉正则表达式引擎应该将接下来的字符当作普通的文本字符。这个特殊字符就是反斜线(\)。
正则表达式识别的特殊字符包括:
**.*[]^${}\+?|()**
锚字符
默认情况下,当指定一个正则表达式模式时,只要模式出现在数据流中的
任何地方,它就能匹配。有两个特殊字符可以用来将模式锁定在数据流中的行首或行尾。
1. 锁定在行首
脱字符( ^ )定义从数据流中文本行的行首开始的模式。如果模式出现在行首之外的位置,正则表达式模式则无法匹配。要用脱字符,就必须将它放在正则表达式中指定的模式前面。
2. 锁定在行尾
跟在行首查找模式相反的就是在行尾查找。特殊字符美元符( $ )定义了行尾锚点。将这个
特殊字符放在文本模式之后来指明数据行必须以该文本模式结尾。