今天博主学到linux的正则表达式,今天分享下学习经历。
什么是正则表达式?
在linux中有很多操作都需要配合正则表达式来处理。
简单的说,正则表达式就是处理字符串的方法,它使以香味单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找、删除、替换某种特定字符串的处理程序。
举个栗子:
假设你发现系统在开机的时候,经常会出现一个关于mail程序的错误,而开机过程的相关程序都是在/etc/init.d/下面,也就是说,子啊该目录下面的某个文件具有mail这个关键字,你想要将改文件选出来进行查询修改的错做。你如果一个一个去打开,要是有100个,是不是会很烦,想死的心估计都有了。那么这个时候就可以用到正则表达式了,我们只需要输入:gerp’mail’/etc/init/d/*,那这个grep就是支持正则表达式的工具程序之一。
正则表达式的用途
由于正则表达强大的字符串处理能力,目前一堆软件都支持正则表达式。最常见的就是“邮件服务器”。目前造成网络阻塞的一打原因就是垃圾邮件,而如果我们可以在服务器端就将这些问题邮件删除的话,客户端就会减少很多不必要的带宽损耗了。这个时候就可以使用我们的正则表达式。
这个怎么学
红红火火恍恍惚惚,这个就是要背啊,就像你小学背九九乘法表一样的,也要一样的滚瓜烂熟。
语系对正则表达式的影响
举个栗子:
1、 LANG=C时:0 1 2 3 4 5…A B C D…Z a b c d…z
2、 LANG=zh_CN是:0 1 2 3 4 5…a A b B c C d D…z Z
上面的编码顺序我们看着就很不一样,所以,使用正则表达式时,一定要特别留意当时环境的语系是什么,否则可能会发现与别人不相同的选取结果。
特殊符号 | 代表意义 |
[:alnum:] | 代表英文大小写字符及数字,及0-9,A-Z,a-z |
[:alpha:] | 代表任何应为大小写字符,及A-Z,a-z |
[:blank:] | 代表空格与[Tab]按键 |
[:cntrl:] | 代表键盘上的控制按键,即包括CR,LF,Tab,Del等 |
[:digit:] | 代表数字而已,即0-9 |
[:gerph:] | 除了空格与Tab的其他按键 |
[:lower:] | 代表小写字符,即a-z |
[:print:] | 代表任何可以被打印出来的字符 |
[:punct:] | 代表标点乳,即?”!;.,#$ |
[:upper:] | 代表大写字符,即A-Z |
[:space:] | 任何会产生空白的字符,包括空格键[Tab]CR等 |
[:xdigit:] | 代表是十六进制的数字类型,因此包括0-9,A-F,a-f的数字与字符 |
[:alnum:] [:alpha:] [:digit:] [:lower:] [:upper:]这几个比较重要,我已经加粗了,因为它们的用途更加方便。