正则表达式
以行,为单位进行字符处理行为。对字符串进行搜索,删除,替代等操作。
正则表达式与bash环境下的通配符是不同的概念。
对编码无关的正则表达式符号
[:alnum:] | 代表英文大小写字符及数字,亦即0-9,A-Z,a-z |
[:alpha:] | 代表任何英文大小写字符,亦即A-Z,a-z |
[:digit:] | 代表数字,亦即0-9 |
[:lower:] | 代表小写字符,亦即a-z |
[:upper:] | 代表大写字符,亦即A-Z |
[:xdigit:] | 代表16进制数字,亦即0-9,A-F,a-f |
[:blank:] | 代表空格和tab |
[:space:] | 任何会产生空白的字符,包括空格,Tab,CR等 |
[:punct:] | 代表标点符号,亦即"'?!;:#$ |
[:cntrl:] | 代表控制字符,包括CR,LF,Tab,Del |
[:graph:] | 除了空格和Tab以外的其他字符 |
[:print:] | 任何可以被打印出来的字符 |
基本正则表达式特殊字符含义
^string | 搜索以字符串string为行首的行 |
string$ | 搜索以字符串string为行尾的行 grep '^$' text.txt 表示空行 |
.(点号) | 有且只有一个任意字符 |
char* | 零个或多个的char字符 ‘.*’ 表示零个或多个任意字符 |
\ | 转义字符 |
[list] | 有且只有一个在括号内所列出的字符 |
[n1-n2] | 有且只有一个在括号内所指定的范围的字符 与编码格式相关 |
[^list] [^n1-n2] | ^在中括号内,表示反向选择 |
char\{n\} char\{n,\} char\{n,m\} | 连续n个char字符 {}需要转义 连续n个以上char字符 连续n到m个的char字符 |
延伸型正则表达式特殊字符含义
char+ | 一个或多个char字符 |
char? | 零个或一个char字符 |
string1|string2 | 或(or),string1和string2任一个符合条件 |
(string1|string2) | 括号内的代表一个字符串单位 |
(string)+ | string有多个重复 |
支持正则表达式的常用命令
grep | 从stdin或文件搜索符合条件的行 |
sed | 从stdin或文件,对文本进行各种操作 |
vim | 文本编辑器 |