正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个串中取出某个符合的子串。下我将基本正则表达式分为以下六种。
一、字符类
语法结构 | 功能描述 |
---|---|
. | 匹配任意一个字符 |
[ ] | 匹配括号中的任意一个字符 |
- | 在[ ]内表示字符范围 |
^ | 位于[ ]括号内的开头,匹配除了括号中的字符之外的任意一个字符 |
[[:XXX:]] | grep工具预定义的一些命名字符类 |
二、数量限定符
语法结构 | 功能描述 |
---|---|
? | 紧跟着在他前面的单元应该匹配零次或者一次 |
+ | 紧跟着在他前面的单元应该匹配一次或者多次 |
* | 紧跟着在他前面的单元应该匹配零次或者多次 |
{N} | 紧跟着在他前面的单元应该匹配N次 |
{N,} | 紧跟着在他前面的单元应该匹配至少N次 |
{,M} | 紧跟着在他前面的单元应该匹配至多M次、 |
{N,M} | 紧跟着在他前面的单元应该匹配至少N次至多M次 |
三、位置限定符
语法结构 | 功能描述 |
---|---|
^ | 匹配行首位置 |
$ | 匹配行末位置 |
< | 匹配单词开头的位置 |
> | 匹配单词结尾的位置 |
\b | 匹配单词开始或者结尾的位置 |
\B | 匹配非单词开始或者结尾的位置 |
四、特殊符号
语法结构 | 功能描述 |
---|---|
\ | 转义字符,普通字符转义为特殊字符,特殊字符转义为普通字符 |
( ) | 将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符 |
| | 连接两个子表达式,表示或的关系 |
五、其他普通字符集及其替换
语法结构 | 功能描述 |
---|---|
\d | 数字字符 |
\D | 非数字字符 |
\w | 数字字母下划线 |
\W | 非数字字母下划线 |
\s | 表格、换行等空白字符 |
\S | 非空白字符 |
六、贪婪模式和非贪婪模式
语法结构 | 功能描述 |
---|---|
.* | 贪婪模式 |
.*? | 非贪婪模式 |