免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: grshrd49
打印 上一主题 下一主题

有取舍的split [复制链接]

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
1 [报告]
发表于 2013-09-15 10:34 |显示全部楼层
这个问题有点复杂,但可以拆成几个相对简单的问题

1. 将 [..]的结构中的逗号替换成别的符号。
2. 将嵌套的结构都替换掉
3. 按照逗号拆分。
4. 将拆分后的内容中的逗号恢复

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
2 [报告]
发表于 2013-09-17 15:55 |显示全部楼层
回复 9# grshrd49


    my $times;

    while ($times) {
        $times = $text =~ s/[ ([^\]]+) ]/'<' . replace_comma($1) . '>'/xmsge;
    }

    sub replace_comma {
         my $str = shift;
         $str =~ s/,/_comma_/g;
         return $str;
    }

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
3 [报告]
发表于 2013-09-18 08:39 |显示全部楼层
回复 14# grshrd49
对层数没有限制。代码没有测试,思路就是每次替换掉一层,将边界字符也替换掉。然后再次替换,直到找不到可以替换的。

   

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
4 [报告]
发表于 2013-09-19 19:29 |显示全部楼层
回复 17# rubyish


    这个问题确实很复杂,将一个复杂的问题拆分成几个简单点的问题,就简单多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP