首页 > 代码库 > 正则表达式(1)
正则表达式(1)
正则表达式是计算机科学中的一个重要概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器中,正则表达式通常被用来检索、替换符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。(grep、sed、awk)
为什么要学习正则表达式?
在工作中,我们做Linux运维工作,时刻面对着大量的日志、程序、命令的输出。迫切的需要过滤我们需要的一部分内容,甚至是一个字符串。
一、grep(grep全称Global Regular Print)
1、作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep,表示全局正则表达式版本,它的权限是所有用户。
2、格式
grep [选项] 正则表达式 [文件]
3、常用选项
-c 只输出匹配行的计数;
-i 不区分大小写(只适用于单字符);
-h 查询多文件时不显示文件名;
-l 查询多文件时只输出包含匹配字符的文件名;
-L 只显示不包含匹配模板的行的文件名清单;
-n 显示匹配行及行号;
-s 不显示不存在或无匹配文本的错误信息;
-n 在每一行前面打印改行在文件中的行数;
-v 显示不包含匹配文本的所有行;
-w 只显示完整单词的匹配;
-x 只显示完整行的匹配;
-r/-R如果文件参数是目录 ,该选项将搜做该目录下的所有子目录和文件。
4、元素符号集
grep* (过滤)
过滤一般都是用"" ‘‘ 引号引起来
^lucky 表示搜索以lucky开头的内容;
lucky$ 表示搜索以lucky结尾的内容;
^$ 表示空行,不是空格;(起排除空行作用)
. 代表且只能代表任意一个字符;(当前目录,加载文件)
\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原形 例如:\.只表示小数点,还原原始小数点的意义;
* 重复0个或者多个前面一个字符。不代表所有了。
.* 匹配所有的字符;
^* 任意多个字符开头;
[abc] 匹配suoyou的字符合内任意一个字符[a-z]
[^adc] ^再中括号里表示非,不包括a或b或c;
{n,m} 重复n到m次,前一个字符;
{n, } 重复至少次,多了不限;
{n} n次;
{0,m} 至多m次,少了不限。
扩展:egrep作用是在文件中查找指定的字符串。egrep执行效果如grep -E,使用语法及参数可参照grep指令,egrep与grep不同点解读字符串的方法。
本文出自 “lucky” 博客,请务必保留此出处http://10433221.blog.51cto.com/10423221/1922732
正则表达式(1)