正则表达式
一、特殊符号
^ $:分别表示文本的开始和结束。.:匹配除了换行符和回车符以外的任何单个字符,等价于[^\n\r]。?:匹配前面的子表达式零次或一次,等价于{0,1}。*:匹配前面的子表达式零次或多次,等价于{0,}。+:*匹配前面的子表达式一次或多次,等价于{1,}。|:*逻辑或。\b:匹配一个单词边界,即字与空格间的位置。
二、Linux 中的正则表达式
2.1 相关基础
Linux 中的正则表达式一般以行为单位处理的,
POSIX 规范将正则表达式分成了两种:
- 基本正则表达式 (BRE, basic regular expression)
- 扩展正则表达式 (ERE, extended regular expression)
BRE和 ERE 的区别仅仅是元字符的不同:
- BRE(基础正则表达式)只承认的元字符有:
^ $ . [ ] *其他字符识别为普通字符。 - ERE(扩展正则表达式)则添加了
( ) { } ? + |等。
只有在用反斜杠 \ 进行转义的情况下,字符( ) { }才会在 BRE 中当做元字符处理,而在 ERE 中,任何元符号前面加上反斜杠反而会使其被当做普通字符来处理。