基本正则表达式元字符
字符匹配
.:匹配任意单个字符;
[]:匹配指定范围的任意单个字符;[0-9][abcdefg]
[^]:匹配指定范围外的任意单个字符;
[:digit:]:0-9;
[:lower:]:小写字母;
[:upper:]大写字母;
[:alpha:]:大小写字母;
[:alnum:]:数字和大小写字母;
[:punct:]:所有标点符号;
[:space:]:空白字符;
匹配次数
*:匹配前面的字符任意次;
.*:匹配任意长度任意字符;
\?:匹配前面字符0次或1次,及可有可无;
\+:匹配前面字符至少一次;
\{m\}:匹配前面字符m次;
\{m,n\}:匹配前面字符至少m次,最多n次;
位置锚定
^:行首锚定,用于模式的最左侧。^abc:以abc开始的行;
$:行尾锚定,用于模式的最右侧。abc$:以abc结尾的行;
^PATTERN$:用于模式匹配整行;
^$:匹配空行;
^[[:space:]]$:空白行;
\<或\b:锚定词首,用于单词模式的最左侧。\<abc:以abc开始的单词;
\>或\b:锚定词尾,用于单词模式的最右侧。abc\>:以abc结尾的单词;
\<PATTERN\>:匹配整个单词;
分组
\(\):分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部变量中,这些变量的命名方式为:
\1,\2,\3......。\1:从左侧起,第一个左括号以及与之匹配右括号之间的模式,所匹配到的字符。
后向引用:引用前面的分组括号中的模式所匹配的字符,而非模式本身。