Chinaunix

标题: 请教一个字符串处理的问题 [打印本页]

作者: thsniperwolf    时间: 2009-11-12 10:06
标题: 请教一个字符串处理的问题
请教一下大家这样一个问题,一个字符串teststring = "/product/test/",perl里面有什么简便的方法或者函数把字符串里面的"/"全部替换成"#"吗? 一开始我用的是sed,但是sed是linux的命令,还得借助system()来执行,而且sed "s/\//\#" teststring
也没成功,因为老把要替换的"/"当成sed的分隔符了。。。

我对perl不是很熟悉,最近工作需要涉及到这个改动,弄了很久没弄出来。希望有高人帮下忙,谢谢
作者: leigh111    时间: 2009-11-12 10:11
s{\/}{#};
作者: leigh111    时间: 2009-11-12 10:14
my $teststring = "/product/test/";
$teststring =~ s{\/}{#}g;
print $teststring;
不好意思,望写了,后面再加一个g
作者: wdl111    时间: 2009-11-12 10:14
s?/?#?g
作者: thsniperwolf    时间: 2009-11-12 10:41
标题: 回复 #3 leigh111 的帖子
为什么我照你这样做后,打印出来的是一串数字呢
$test ="/product/test/";
$test =~s{\/}{#}g;
print $test;

打印出来一串数字4294967295  .........
作者: leigh111    时间: 2009-11-12 10:45
我在我的机子上运行时正常的,结果是#product#test#

你看看是不是其他的问题
作者: thsniperwolf    时间: 2009-11-12 10:47
标题: 回复 #4 wdl111 的帖子
谢谢4楼,原来分隔符可以用其他符号啊,我一直以为只能用"/"。。。
也谢谢3楼,虽然不对,但是提醒了我
作者: cobrawgl    时间: 2009-11-12 10:48
原帖由 thsniperwolf 于 2009-11-12 10:41 发表
为什么我照你这样做后,打印出来的是一串数字呢
$test ="/product/test/";
$test =~s{\/}{#}g;
print $test;

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



s{/}{#}g;
作者: x9x9    时间: 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 编辑 ]
作者: thsniperwolf    时间: 2009-11-12 11:27
可能是机器问题,后来我那样做也能正确显示,有点莫名其妙了,不管怎样谢谢大家




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2