Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

Linux Shell 基本概念及编程(2)

来源: hbxu 分享至:

正则表达式,首先是一种表达式,那么这种表达式用来干嘛呢?这种表达式可以针对谁起作用呢?所以理解了这两个就可以得出正则表达式,正则表达式是针对字符进行匹配的运算表达式。所以我们明白了第一点,正则表达式只能作用于字符文件,或者说一段字符串。那么使用这个表达式,通常可以用来干嘛呢?通常有三种,一种是搜索,一种是替换,还有一种是统计。正则表达式通常使用前后两个“/”来表示,如图所示 /^love/。正则表达式在几乎所有的语言中都有支持,在LINUX SHELL中也是提供了支持。通常我们使用正则表达式同在VI中使用正则表达式一样。正则表达式作为一个表达式,通常有两种元素组成,一种是元元素,就是含有特殊意义的字符,这些字符用来表示一些特定含义,如^表示行首,$表示行尾。注意这种元字符与SHELL内部的通配符是两码事。另外一种是字符元素如/love/就是所有含有love的字符,/^love/加了一个元元字符,就是匹配以love开始的行。下表列出了所有LINUX Shell规则的正则表达式的元元素符。

^ 行首标志 /^love/ 匹配所有以love开始的行
$ 行尾标志 /love$/ 匹配以love结尾的行
. 匹配一个字符 /l..e/ 匹配包含一个l,后面两个任意字符,再接上e的所有行
* 匹配一个或多个前向的字符 /*love/ 匹配一个或多个格,后面跟上love的行,这里的*与通配符*含义是不同的,后者是任意字符
[] 匹配其中一个 /[Ll]ove/ 匹配包含love或者Love的所有行
[x-y] 匹配在指字区间范围内的字符的一个 /[A-Z]ove/ 匹配从A到Z中一个字符后接ove的所有单词
[x-y ] 匹配在指定字符区间x-y和后面的字符中一个 /[A-Z l]ove/ 配置从A到Z中一个字符后接ove或者love的所有行
\< 单词开始标志 /\&lt;love/ 匹配以love这个单词开头的行(vi和grep支持)
\> 单词结束标志 /love\&gt;/ 匹配以love这个单词结尾的行
[^] 匹配不在[]这个集合中的任意字符 /[^A-Z]/ 匹配任意字符不在A到Z范围内
\ 用来转义 /love\./ 匹配包含love.不是lovely等的
\(..\) 标志后面需要用到的字符串(通常用于替换) /\(love\)able\1er/ \1作为一个暂存标志,前面搜索到字符串loveable,替换成loveer
x\{m\} or x\{m,\} or x\{m,n\} 指定出现次数的字符 o\{5,10\} 用来匹配o出现5到10次行

使用这些规则可以使用vi编一个字符文件来尝试一下,也可以在windows中用ultraedit来试一下。

image

如针对上面的一段字符串,可以尝试如下表达式 /^love/ , /love$/,/l.ve/, /o*ve/ ,/[Ll]ove/,/ove[a-z]/,/ove[^a-zA-Z0-9]/

前面所说的一个正则表达式由元字符和字符组成,那么想要将元字符变成正常字符,只需要用转义符\来表示如/love./ 和/love\./表示就不一样,后面只能匹配"love.”,前面则可以匹配lovely等。

关于列表中的后两种,比较复杂,用的也比较少。可参考如下图学习:

image

image

【1】句号只匹配任意单个字符

...x..xx..x   drwxrwxrw- 不匹配 -rw-rw-rw- 不匹配 -rwxr-xr-x  匹配 -rwxrwxrwx 匹配

【2】^只许在一行开始匹配字符或者单词,注意是行开始.

^d   drwxrwxrwx 匹配 –rw-------不匹配 -rwxrwxrwx不匹配  ^...1 32131234 不匹配 12311231 匹配

【3】$ , 行尾匹配 ^$ 匹配空行  ^.$ 匹配包含一个字符的行

【4】*有点不一样,按照shell下零到多个,按照正规是一个到多,并且是前向字符的重重。

【5】[]匹配其内任意一个字符,这当中可以是一个列表或者一个范围。[0123456789]或[0-9]匹配任意一个数字。  [a-z]  任意一个小写字母。  [A-Za-z] 任意大、小写字母 [S,s] 大S或小S

【6】 \{\}  匹配模式结果出现的次数 A\{2\}B A出现两次 AAB   A\{4,\}B A最少出现4次 AAAAB, AAAAAAAAB…  A\{2,4\}B   A出现次数范围2-4次 AAB AAAB AAAAB


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史