linux学习日记九 正则表达式介绍
正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。
正则表达式基本上就是一种“表示法”,只要工具程序支持这种表示法,那么该工具程序就可以利用正则表达式处理字符串。例如vi,grep,awk,sed等。
正则表达式和之前的bash通配符是两个完全不同的东西,两者毫无关系,这个要注意下。
# grep [-A] [-B] [--color=auto] ‘string’ filename
-A:后面加数字,为after的意思,除了列出该行,后续的n行也列出
-B:before的意思,不解释
# dmesg | grep -n -A3 -B2 –color=auto ‘eth’ <== 内核信息
====几个基本的正则式特殊符号====
特殊符号 | 代表意义 |
[:alnum:] | 代表英文大小写字符以及数字,亦即 0-9, A-Z, a-z |
[:alpha:] | 代表任何英文大小写字符,亦即 A-Z, a-z |
[:blank:] | 代表空白键与 [Tab] 按键两者 |
[:cntrl:] | 代表键盘上面的控制按鍵,亦即包括 CR, LF, Tab, Del.. 等等 |
[:digit:] | 代表数字而已,亦即 0-9 |
[:graph:] | 除了空白字元 (空白键与 [Tab] 按鍵) 外的其他所有按鍵 |
[:lower:] | 代表小写字元,亦即 a-z |
[:print:] | 代表任何可以被列印出來的字元 |
[:punct:] | 代表标点符号 (punctuation symbol),亦即:” ‘ ? ! ; : # $… |
[:upper:] | 代表大写字元,亦即 A-Z |
[:space:] | 任何会产生空白的字元,包括空白鍵, [Tab], CR 等等 |
[:xdigit:] | 代表 16 进制的数字类型,因此包括: 0-9, A-F, a-f 的数字与字符 |
====基础正则式====
RE 字符 | 意义与范例 |
^word | 意义:待搜寻的字串(word)在行首! 范例:搜寻行首为 # 开始的那一行,并列出行号
|
word$ | 意义:待搜寻的字串(word)在行尾! 范例:将行尾为 ! 的那一行列印出來,并列出行号
|