一 概述:
(一)正则表达式由两个基本组成部分:
(1)普通字符:任何没有特殊意义的字符,普通字符都可以按照字面意思理解。如:1,2,3,a,b。
(2)特殊字符(元字符metacharacter):如:*,^,$等。
(二)Posix标准将正则表达式分为两类:
(1)基本的正则表达式(BRE)
(2)扩展的正则表达式(ERE)
大部分linux应用和工具仅支持基本的正则表达式,不同命令对正则表达式的支持度不一样。
二 基本的正则表达式
(一)基本的正则表达式元字符集合:
*:匹配在它之前的任何数目(或没有)的单个字符。
.:匹配任何单个字符,但NULL除外。
^:匹配行首
$:匹配行尾
\:转义符,屏蔽一个元字符的特殊含义
[...]:匹配字符集合
\{n,m\}:匹配前面字符出现n~m次;\{n\}:匹配前面字符出现n次;\{n,\}:匹配前面字符至少n次。
(二)扩展正则表达式:
*?:匹配于0个或一个前置正则表达式。例如:ab?c,匹配:ac或abc。
*+:匹配于1个或多个前置正则表达式。例如:ab+c,匹配:abc、abbc等等。
*(why)+:匹配与一个或连续多个重复的多个why。
*|:管道字符,可以用来指定匹配于多个序列,[...]只能匹配多个字符.