免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4411 | 回复: 10
打印 上一主题 下一主题

求教,这是PERL的什么用法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-21 11:14 |只看该作者 |倒序浏览
本帖最后由 slwj 于 2014-03-21 11:16 编辑

请教下,下面的这段代码是PERL的什么用法?

if( $tgzfilename  =~ /.*(.)(.)(.)((.)(.)(.)(.)(.))$/ )  //这里的(.)代表什么
        {
                my $the5 = $1;
                my $last5 = $4; //这里的$1和$4分别代表上面的第2个和第5个(.)吗
                my $PBID = &getSymbol("ECOTS_SD_HIFIXNUMBER");
                if( ($PBID =~ /^8[dD]/ and $the5 != 2) or ( $PBID =~ /^2[dD]/ and $the5 != 1 ) )
                {
                        &popupErrMsg("PBID DUT Number $PBID mismatch with test program fix character setting $the5.");
                        exit 1;
                }

                &setSymbol( "ECOTS_SD_CT_PROGRAM_REVISION", $last5 );
        }

多谢!

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-03-21 11:20 |只看该作者
正则表达式的用法.

取最后的8个字符

论坛徽章:
0
3 [报告]
发表于 2014-03-21 11:32 |只看该作者
q1208c 发表于 2014-03-21 11:20
正则表达式的用法.

取最后的8个字符


多谢!
          my $the5 = $1;  //这里的$1代表后面8个字符里的从前往后数的第2个吗
               my $last5 = $4;

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2014-03-21 13:02 |只看该作者
回复 3# slwj


    应该不是, $1 表示是第一个()里的内容.

论坛徽章:
0
5 [报告]
发表于 2014-03-21 13:50 |只看该作者
q1208c 发表于 2014-03-21 13:02
回复 3# slwj


多谢!

这里的
if( $tgzfilename  =~ /.*(.)(.)(.)((.)(.)(.)(.)(.))$/ )
有双层括号的嵌套,起什么作用?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2014-03-21 14:11 |只看该作者
回复 5# slwj


    应该是后面的5个字符, 是新的一组了, 但是, 你要测试一下才知道是$9 还是 $4.

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
7 [报告]
发表于 2014-03-21 14:22 |只看该作者
左括号优先不论匹配的右括号在哪里

论坛徽章:
0
8 [报告]
发表于 2014-03-25 08:17 |只看该作者
点号是通配符,只代表一个字符。括号是群组,左右为一对,最后匹配的结果存储在$1,$2...中,从左边向右边数左括号,第一个左括号与配对的右括号匹配的值存储在$1中,依次类推。

论坛徽章:
2
巨蟹座
日期:2014-05-21 16:42:40巳蛇
日期:2014-05-22 08:44:29
9 [报告]
发表于 2014-04-02 13:45 |只看该作者
学习一下:wink:

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
10 [报告]
发表于 2014-04-02 14:16 |只看该作者
(.)(.)

看着好像咪咪。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP