1.什么是正则表达式
正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。
正则表达式基本上是一种“表示法”,只要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用。
2.正则表达式的用途
- 对于系统管理员来说,在系统的数据量特别大的时候,想查看一行有问题的信息,就可以用正则表达式将信息来进行分析,这样系统的管理工作就会更加方便。
- 邮件服务器,是最常见的使用正则表达式的地方。
3.基础正则表达式
正则表达式只是处理字符串的一种表示方法,对字符排序有影响的语系数据就会对正则表达式的结果产生影响。正则表达式也需要支持工具程序辅助才行,最简单的字符串选取工具就是grep。
语系的影响
例如
- LANG=C时:0 1 2 3 4 … A B C D…Z a b c …z
- LANG=zh_CN时:0 1 2 3 … a A b B c C …z Z
为了避免这样的编码所造成的英文与数字的选取问题,有些特殊的符号得让我们了解一下。
特殊符号 | 代表意义 |
---|---|
[:alnum:] | 代表英文大小写字符及数字,即0-9,A-Z,a-z |
[:alpha:] | 代表英文大小写字符,即A-Z,a-z |
[:blank:] | 代表空格键和Tab按键 |
[:cntrl:] | 代表键盘上的控制按键,即包括CR,LF,Tab,Del等 |
[:digit:] | 代表数字而已,即0-9 |
[graph] | 除了空格符之外的所有字符 |
[:lower:] | 代表小写字符,即a-z |
[:upper:] | 代表大写字符,即A-Z |
:print: | 代表任何可以被打印出来的字符 |
[:punct:] | 代表标点符号(punctuation symbol),即" ’ ? / : ;# $ |
[:space:] | 任何会产生空白的字符,包括空格键[Tab]CR等 |
[:xdigit:] | 代表十六进制的数字类型,因此包括0-9,A-F,a-f的数字与字符 |
grep的一些高级参数
grep [-A][-B] [--color=auto] '搜寻字符串' filename
-A:后面可加数字,为After的意思,除了列出该行外,后续的n行业列出来
-B:后面可加数字,为befor的意思,除了列出该行外,前面的n行业列出来
--color=auto可将正确的那个选取数据列出颜色
dmesg 可列出内核产生的信息
grep是一个很常见也很常用的命令,它最重要的功能就是进行字符串数据的对比,然后将符合用户需求的字符串打印出来,需要说明的是grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的。
注意:
在关键字的显示方面上,可以在~/.bashrc内加上这行:alias grep=‘grep --color=auto’,再以“source ~/.bashrc”来生效即可,这样每次执行grep它都会自动帮你加上颜色显示。