码迷,mamicode.com
首页 > 系统相关 > 详细

linux正则表达有话说

时间:2016-08-06 14:32:23      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   grep   

一、基本通配符

globbing:文件名通配符
        *:任意长度的任意字符
        ?:任意单个字符
        []:匹配范围内的任意单个字符
        [^]:匹配范围外的任意单个字符

二、文本处理工具之Linux文件处理三剑客 

Linux文本三剑客:
1)grep:文本处理工具
2)sed:流编辑器
3)awk:文本报告生成器,格式化文本

三、正则表达式

正则表达式:regular experssion regexp
由一类特殊字符及文本所编写的模式,其中有些字符不表示其字面意思,而是用于表示控制后通配的功能。
分两类:
        1)基本正则表达式:BRE
        2)扩展正则表达式:ERE
grep命令:
grep, egrep, fgrep - print lines matching a pattern
    grep [OPTIONS] PATTERN [FILE...]
    grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
常用选项:
    -v:取反
    -i:忽略大小写
    -E:扩展正则表达式
    -o:仅显示匹配到的字符串本身
    --color:显示匹配到的字符颜色
    -q:静默模式,不输出信息在屏幕
    -A:显示匹配到的行的后N行,after之意
    -B:显示匹配到的行的前N行,before之意
    -C:显示匹配到的行的前后N行,context之意 
作用:文本搜索工具,根据用户指定的模式,对目标文件逐行进行匹配检查,打印匹配到的行

元字符:

^:行首
$:行尾
.:任意单个字符
[]:[]内的任意单个字符
[^]:除[]外的任意单个字符
*:*前面的字符重复0次或任意次
\+:\+前面字符重复一次或一次以上
\?:?前面字符重复0次或1次 
\:转义字符 
.*:任意长度的任意字符
\{n\}:前面的字符出现n次
\{n,\}:前面字符出现n次以上
\{n,m\}:前面的字符至少出现n次,最多出现m次 
\{,n\}:前面的字符最多出现n次 
[:alpha:]:所有字母,包括大小写
[:alnum:]:所有数字和字母 
[:upper:]:所有大写字母
[:lower:]:所有小写字母
[:digit:]:所有数字
[:punct:]:所有标点符号
[:space:]:所有空格和tab键

匹配次数:

用在要指定次数的字符后面,用于指定前面的字符要出现的次数
*:匹配其前面的字符任意次,包括0/1次或多次,贪婪模式,尽可能的长
.*:匹配其任意长度的任意字符
\?:匹配其前面的字符0次或1次
\+:匹配其前面的字符至少1次或多次
\{m\}:匹配其前面的字符m次
\{m,\}:匹配其前面的字符至少m次
\{,m\}:匹配其前面的字符至多m次
\{m,n\}:匹配其前面的字符至少m次,至多n次

位置锚定:

^:行首锚定
$:行尾锚定
^PATTERN$:用于模式匹配整行 
^$:空行 ^[[:space:]]*$:空白行
\<:词首锚定
\>:词尾锚定

分组:

\(\):将一个或者多个字符捆绑在一起,当做一个整体进行处理,例如:\(root\)\+:表示root至少出现一次
分组括号中中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量命名方式为:\1,\2,\3,...
\1:表示从左侧起,第一个左括号及与之匹配的右括号之间的模式所匹配到的字符
后向引用:引用前面的分组括号中的模式所匹配字符而非模式本身

注意:未完结,老司机开车带我们飞,车没油,老司机加油去了:)

本文出自 “叫醒你的不是闹钟而是梦想” 博客,请务必保留此出处http://purify.blog.51cto.com/10572011/1835001

linux正则表达有话说

标签:正则表达式   grep   

原文地址:http://purify.blog.51cto.com/10572011/1835001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!