第八天 Linux正则表达式 | 您所在的位置:网站首页 › grep正则表达式实例 › 第八天 Linux正则表达式 |
1、什么是正则表达式 (1)正则表达式是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号辅助,可以快速的过滤,替换某些特定的字符串。 (2)运维工作中,会有大量的访问日志、错误日志等数据。如何快速过滤出需要的内容,就得靠正则表达式。 (3)awk,sed,grep(egrep)想用好三剑客,首先就需要掌握正则表达式,Linux中的正则表达式主要就是用awk、sed、grep(egrep)。 2、正则表达式的特殊字符基础正则表达式: (1)^ 以什么开头,例:^test 搜索以test开头的。 (2)$ 以什么结尾,例:test$ 搜索以test结尾的。 (3). 代表且只能代表任意一个字符。 (4)\ 转义字符,让有特殊意义的字符还原成普通字符。 (5)* 重复0个或多个前面的一个字符。 (6).* 匹配所有字符。例:^.* 以任意多个字符开头 。 (7)[] 是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。[]无论里面有几个字符,它都只代表某“一个”字符。 (8)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。 (9)[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。 [0-9]* 匹配数字(注意后面有 *,可以为空)。 (10){} 一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。 (11){n,m} 重复n到m次,前一个重复的字符。 (12){,m} 重复最多m次,前一个重复的字符。 (13){n,} 重复最少n次, 前一个重复的字符。 (14){n} 重复n次,前一个重复的字符。 扩展正则表达式: (1)| 用或的方式查找多个符合的字符串。 (2)+ 重复一个或一个以上前面的字符。 (3)? 重复0个或一个前面的字符。 (4)() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。 (5)()+ 多个重复组的判别。 (6)(0-9) 匹配 '0-9' 本身。 3、正则表达式不同命令对比grepegrepsedawk转义\\\\行头^^^^行尾$$$${m} {m,}{m,n}\{n\}{n}\{n\}awk使用--posix或--re-interval选择是,{n}可以直接使用,若不使用该选项,则不能使用{n}这种模式,要表示{或}本身意义,可使用\\{或\\}来表示{0,}****或\*,(要表达*,得用\\*){1,}\++\++或\+,(要表达+,得用\\+){0,1}\??\??或\?,(要表达?,得用\\?)4、正则表达式实例演示(1)查找特定字符串 (2)利用[]查找字符集 (3)行首与行尾字符^$ (4)任意字符.与重复字符* (5)限定连续字符范围{} (6)取网卡的IP地址 原文链接:第八天 Linux正则表达式 - FeiyingBlog,转载请注明出处。
|
CopyRight 2018-2019 实验室设备网 版权所有 |