免费注册 查看新帖 |

Chinaunix

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

split问题求教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-01 23:31 |只看该作者 |倒序浏览
$line="1(((5"
@lines=split(/(\D+)/,$line);
这样分出来的数组有未定义项,怎么去掉?
最后@lines中要为"1","(","(","(","5"五项~
谢谢~

论坛徽章:
0
2 [报告]
发表于 2012-12-02 00:35 |只看该作者
@lines = split //, $line

论坛徽章:
1
子鼠
日期:2013-12-02 22:34:22
3 [报告]
发表于 2012-12-02 01:29 |只看该作者
回复 1# aideruike
split /\D+/,$line
把括号去掉

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
4 [报告]
发表于 2012-12-02 09:59 |只看该作者
学习了

论坛徽章:
0
5 [报告]
发表于 2012-12-02 11:43 |只看该作者
回复 2# longbow0
如果这样的话1(((55的时候是"1","(","(","(","5","5",我需要"1","(","(","(","55"

   

论坛徽章:
0
6 [报告]
发表于 2012-12-02 11:44 |只看该作者
回复 3# erpeng_1988

这样就没有"("了不是嘛?
   

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
7 [报告]
发表于 2012-12-02 13:57 |只看该作者
回复 1# aideruike
  1. perl -e '$line="1(((55";@arr=split/(\()/,$line;for (0..$#arr){next if ($arr[$_]=~m/^\s*$/);print "$arr[$_]\n"}'
复制代码

论坛徽章:
1
子鼠
日期:2013-12-02 22:34:22
8 [报告]
发表于 2012-12-02 21:19 |只看该作者
回复 1# aideruike
$line="1(((55";
@lines=split //,$line,5;
print "@lines",scalar @lines,"\n";
加limit,分为五个字段
   

论坛徽章:
0
9 [报告]
发表于 2012-12-02 23:37 |只看该作者
  1. my $string = "1(((55";
  2. my @elements = grep { !( $_ eq "") } split /(\()/, $string;
  3. print "@elements";
复制代码

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00
10 [报告]
发表于 2012-12-03 11:09 |只看该作者
本帖最后由 tanjiyong138 于 2012-12-03 11:10 编辑

回复 9# iLRainyday


    求教,split /(\()/, $string   split /\(/, $string  这两个结果完全不一样,split 有括号和没括号是什么区别呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP