标题:正则表达式简述
取消只看楼主
guixiaolan
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:356
专家分:0
注 册:2006-4-20
 问题点数:0 回复次数:0 
正则表达式简述
[bo]0.文件准备[/bo]
[gxlinux@localhost ~]$ cat zhengze
1.ac
2.a\c
3.abc
4.abbc
5.abdc
6.12345
7.(last),(first)
8.(last)

[bo]1.$匹配结尾[/bo]
[gxlinux@localhost ~]$ sed -n '/dc$/ p' zhengze
5.abdc
#匹配结尾是dc的行

[bo]2.^匹配开头[/bo]
[gxlinux@localhost ~]$ sed -n '/^6/ p' zhengze
6.12345
#匹配开头是6的行

[bo]3.*匹配0个或多个[/bo]
[gxlinux@localhost ~]$ sed -n '/ab*c/ p' zhengze
1.ac
3.abc
4.abbc
#匹配0个或多个b

[bo]4..匹配任意字符[/bo]
[gxlinux@localhost ~]$ sed -n '/(.*)/ p' zhengze
7.(last),(first)
8.(last)
#匹配( 任意个字符 ),最长匹配

[bo]5.[^]匹配非[/bo]
[gxlinux@localhost ~]$ sed -n '/([^)]*)/ p' zhengze
7.(last),(first)
8.(last)
#匹配( 非)的任意个字符 ),最短匹配,与上面的示例有所不同,注意

[bo]6.\匹配特殊字符[/bo]
[gxlinux@localhost ~]$ sed -n '/a\\c/ p' zhengze #转义字符\\表示字符\
2.a\c
#匹配转义字符,即匹配a\c的行

[bo]7.示例[/bo]
[gxlinux@localhost ~]$ sed -n 's/[un]\([^,]*\),\(.*\)[/un]/[un]\2,\1[/un]/ p' zhengze
(first),7.(last)
#将7.(last),(first)行前后置换
#\(与\)是一对,在替换作用中有用,不代表任何字符
#[^,]*表示不包括逗号的任意个字符,由于\(与\)将其括住,所以将其作为\1
#它匹配7.(last)
#.*表示与任意字符匹配,并将其作为\2
#它匹配(first)
#s表示替换,将前一个//中的内容替换为后一个//
#即将\([^,]*\),\(.*\)替换为\2,\1

[bo]8.?在find命令中表示1个任意字符[/bo]
[gxlinux@localhost zhengze]$ ls
zhengce  zhengze  zhengzze
[gxlinux@localhost zhengze]$ find -name "zheng?e"
./zhengze
./zhengce
#注意:在sed或vi中并没有此功能

[bo]9.用处[/bo]
正则表达式经常会用在sed和vi等一些编辑器中,作为查找或替代之用.

正则表达式.rar (5.01 KB)
搜索更多相关主题的帖子: 正则表达式 sed zhengze 简述 last 
2008-04-22 20:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-210512-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040886 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved