免费注册 查看新帖 |

Chinaunix

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

请教一个字符串处理的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-12 10:06 |只看该作者 |倒序浏览
请教一下大家这样一个问题,一个字符串teststring = "/product/test/",perl里面有什么简便的方法或者函数把字符串里面的"/"全部替换成"#"吗? 一开始我用的是sed,但是sed是linux的命令,还得借助system()来执行,而且sed "s/\//\#" teststring
也没成功,因为老把要替换的"/"当成sed的分隔符了。。。

我对perl不是很熟悉,最近工作需要涉及到这个改动,弄了很久没弄出来。希望有高人帮下忙,谢谢

论坛徽章:
0
2 [报告]
发表于 2009-11-12 10:11 |只看该作者
s{\/}{#};

论坛徽章:
0
3 [报告]
发表于 2009-11-12 10:14 |只看该作者
my $teststring = "/product/test/";
$teststring =~ s{\/}{#}g;
print $teststring;
不好意思,望写了,后面再加一个g

论坛徽章:
0
4 [报告]
发表于 2009-11-12 10:14 |只看该作者
s?/?#?g

论坛徽章:
0
5 [报告]
发表于 2009-11-12 10:41 |只看该作者

回复 #3 leigh111 的帖子

为什么我照你这样做后,打印出来的是一串数字呢
$test ="/product/test/";
$test =~s{\/}{#}g;
print $test;

打印出来一串数字4294967295  .........

论坛徽章:
0
6 [报告]
发表于 2009-11-12 10:45 |只看该作者
我在我的机子上运行时正常的,结果是#product#test#

你看看是不是其他的问题

论坛徽章:
0
7 [报告]
发表于 2009-11-12 10:47 |只看该作者

回复 #4 wdl111 的帖子

谢谢4楼,原来分隔符可以用其他符号啊,我一直以为只能用"/"。。。
也谢谢3楼,虽然不对,但是提醒了我

论坛徽章:
0
8 [报告]
发表于 2009-11-12 10:48 |只看该作者
原帖由 thsniperwolf 于 2009-11-12 10:41 发表
为什么我照你这样做后,打印出来的是一串数字呢
$test ="/product/test/";
$test =~s{\/}{#}g;
print $test;

打印出来一串数字4294967295  .........



s{/}{#}g;

论坛徽章:
0
9 [报告]
发表于 2009-11-12 10:50 |只看该作者
原帖由 thsniperwolf 于 2009-11-12 10:41 发表
为什么我照你这样做后,打印出来的是一串数字呢
$test ="/product/test/";
$test =~s{\/}{#}g;
print $test;

打印出来一串数字4294967295  .........

应该没问题,这只是一个简单的替换。。。
写法虽然不对,在windows上测试{\/} 和 {/}都能过...

[ 本帖最后由 x9x9 于 2009-11-12 10:55 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-11-12 11:27 |只看该作者
可能是机器问题,后来我那样做也能正确显示,有点莫名其妙了,不管怎样谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP