LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1275|回复: 4

求助,我是初学者,刚刚开始学习精华贴(perl教程)时有些地方不是很理解,想请教一下

[复制链接]
发表于 2004-5-10 15:58:44 | 显示全部楼层 |阅读模式
第六节:

一、数组变量的限制(中的这两句)
1 : #!/usr/local/bin/perl
2 :
3 : while ($inputline = <STDIN>) {
4 : while ($inputline =~ /b[A-Z]S+/g) {
5 : $word = $&;
6 : $word =~ s/[;.,:-]$//; # remove punctuation

我对于4,6两句不是很理解,看了说明,也看了Perl 中的正则表达式这个章节,那位大侠给解释一下。主要是匹配后面的表达式/b[A-Z]S+/g ;/[;.,:-]$//
发表于 2004-5-10 17:34:34 | 显示全部楼层
[A-Z] 表示含有A-Z其中任一字符    +表示匹配原子一次或多次 /g表示全局匹配

[;.,:-] 同上     $表示匹配字符串结尾的原子
 楼主| 发表于 2004-5-11 08:58:03 | 显示全部楼层

还是有些不解

第一个已经理解了,[;.,:-]是指;.,:-这些符号如果是在结尾就被去掉嘛?那么[]中间的元素不需要风格分割嘛,[AB]这样应该指的是字符串AB吧,[A,B]才应该是A或B吧。那么上面的又是怎么回事哪?
发表于 2004-5-11 09:02:18 | 显示全部楼层
s+   表示 一个s ,ss,sss,.....  其中一个 即b[A-Z]s,b[A-Z]ss,...
[]不需要分割符  表示其中之一  

如果想表示字符串需要() 表示一个原子
如[ab(ab)]  (自己想的 ,还没见过这种写法 不知对不 哈哈)
 楼主| 发表于 2004-5-11 09:12:15 | 显示全部楼层
哦,理解了,thx。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表