📄 00000004.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER> <BR>□ 例 <BR> <BR>本节列出数个 Regular Expression 的应用简例, 供读者参考. 由这些□例中, 读者可 <BR>一窥实际应用时, 如何藉由 Regular Expression 来表达字串, 来完成 某些目的. 至 <BR>於各指令像 vi, sed, awk, ...中之语法说明已非本文所能涵盖, 读者请自行参考相关 <BR>书籍. <BR> <BR> * a. 将档案中所有字串 ``Regular Expression'' 或 ``Regular expression'' 换 <BR> 成 ``Regexp''. <BR> o 以 vi 编辑该档案, 并在 vi 命令输入模式下执行 : <BR> :1,$ s/ Regular [Ee]xpression/Regexp/g <BR> * b. 将档案中所有具 ``ddd-dddd'' 特徵的字串(d表阿拉伯数字)之前插入字串 <BR> ``Tel :''. <BR> o 以 vi 编辑该档案, 并在, vi 命令输入模式下执行 : <BR> :1,$ s/[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]/Tel:&/g <BR> o 说明 : `` &'' 代表执行时实际合於该 Regular Expression 的字串. <BR> * c. 将档案中所有俱有 `` program数字.c'' 特徵的字串换成 ``test数字.f''. <BR> o 解法 : 以vi编辑该档案, 并在vi命令输入mode下执行 : <BR> :1,$ s/ program\([0-9][0-9]**\)\.c/test\1.f/g <BR> o 说明 : Regexp `` [0-9][0-9]*'' 表示一位或一位以上的阿拉伯数字. `` <BR> \1'' 被找到的字串中的数值部分. (被\(...\)括住的部分). <BR> * d. 将档案中第5-13行, 整个区域往右移5格(空白字元). <BR> o 解法 : 以vi编辑该档案, 并在vi命令输入mode下执行 <BR> :5,13 s/ .*/ &/ <BR> o 说明 : Regexp `` .*" 用以 match 整个资料列(之後以&表之). 并用 `` <BR> &''(5个空白及原先之资料列)取代该列资料. <BR> * e. 将上例档案中的资料列(5-13行), 往左移回3格. <BR> o 解法 : 以vi编辑该档案, 并在vi命令输入mode下执行 <BR> :5,13 s/ \^ /// <BR> o 说明 : 将行首的三个空白字元换成空字串. <BR> * f. 试从一个档案的全名中分离出其路径及档名. <BR> o 解法 : 编辑如下的script并取名为 ``sepname'' <BR> awk ' <BR> BEGIN { <BR> match( ARGV[1], /.*\//) <BR> print "path=", substr(ARGV[1], 1 ,RLENGTH-1) <BR> print "name=", name = substr(ARGV[1], RLENGTH+1 ) <BR> } ' $1 } <BR> o 执行 $ sepname /usr/local/bin/xdvi <BR> o 结果印出 path= /usr/local/bin <BR> name= xdvi <BR> * g. 将档案中以``From''或``from''为行首的资料列印出 <BR> 执行 $ awk '/^[Ff]rom/ ' 资料档档名 <BR> * h. 去除挡案中空白行 <BR> 执行 $ sed -e "/ ^$/d" <BR> <BR>後 语 <BR> <BR>虽然 Regular Expression 仅是一种字串的表示方式, 但从上列的□例 中不难窥出, <BR>配合接受 Regular Expression 的指令或工具, 其应用面 将远超出找寻字串及置换字 <BR>串. 使用 Regular Expression 不仅扩大了 字串的表达能力, 让使用者很容易进行字 <BR>串判断; 使资料处理的过程便 为更为迅速便利. <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -