1、基本概念
1.1、正则表达式:
正则表达式(regular expression)是一种字符模式(pattern),用来匹配字符串中的子串。
例如:
ro+t 可以匹配 root rooot等
ro*t 可以匹配 rot root rooot等
1.1、正则表达式元字符:
元字符是具有特殊含义的字符,不同于字符表面的含义。正则表达式元字符一般由执行模式匹配的程序来解析,比如grep/egrep、vi/vim、sed、python等。
1.1.1、基本正则元字符:
元字符 | 含义 | 示例 |
---|
^ | 行首定位符 | ^shell |
$ | 行尾定位符 | shell$ |
. | 匹配任一字符 | she… |
* | 匹配前导符0到多次 | she*l |
.* | 任意多个字符 | |
[] | 匹配括号内的任一字符 | [sS]hell |
[^] | 匹配不在括号内^后的任一字符 | [^Ss]hell ,[^a-z0-9] |
[ a-z ] | 匹配括号内a到z范围内任一字符 | [a-z0-9] |
\ | 转义符,用来转义元字符 | \. \* |
\< | 词首定位符 | \<shell |
\> | 词尾定位符 | shell\> |
\(…\) | 匹配稍后使用的字符标签 | 替换ip :%S/10.0.1.199/10.0.1.219/,:%s/\(10.0.1.\)199/\1219, 给每行加注释:%s/\(.*\)/#\1 |
x\{m\} | 匹配字符x出现m次 | |
x\{m,\} | 匹配字符x出现m次以上 | |
x\{m,n\} | 匹配字符x出现m到n次 | |
1.1.2、扩展正则元字符:
元字符 | 含义 | 示例 |
---|
+ | 匹配1或多个前导字符 | s+hell |
? | 匹配0或1个前导字符 | s?hell |
| | 或 | a |
() | 组字符 | abc |
(…)(…)\1\2 | 标签匹配字符 | sh(el)l\1xyz |
x{m} | 匹配字符x重复出现m次 | |
x{m,} | 匹配字符x重复出现m次以上 | |
x{m,n} | 匹配字符x重复出现m到n次 | |
| | |
| | |
1.1.3 POSIX字符
元字符 | 含义 | 示例 |
---|
[:alnum:] | 字母或数字字符 | [[:alnum:]]+ |
[:alpha:] | 字母字符 | [[:alpha:]]{4,8} |
[:digit:] | 数字字符 | [[:digit:]]* |
[:blank:] | 空格与制表符 | [[:blank:]]? |
[:lower:] | 小写字母 | [[:lower:]]{3,} |
[:upper:] | 大写字母 | [[:upper:]]{2} |
[:punct:] | 标点符号 | [[:punct:]]? |
[:space:] | 回车,换行等在所有空白符 | [[:space:]]* |
发布评论