2014-03-31 99 views
0

如何将名称“Happyending-qwertt_asdf_mnb_ko_sdf”更改为第4个数字。012xx名称Happyending将始终保持不变,总之我必须计算“下划线”的数量并将其更改为计数。带下划线的数字

感谢,

+1

$ _ = 'Happyending-qwertt_asdf_mnb_ko_sdf';打印tr/_ //; –

+0

Thanks Hacker .. :) – user3457622

回答

3

你可以使用transliteration

如果REPLACEMENTLIST是空的,SEARCHLIST被复制。后者对于计算类中的字符或压缩类中的字符序列很有用。

my $count = $string =~ tr/_//; 
0

如果你不想改变字符串,你可以使用这个

my $string = "Happyending-qwertt_asdf_mnb_ko_sdf"; 

my $count =() = $string =~ m/_/g; 
+0

'tr ///'总是比'm ///'更有效率。 –

+0

@DaveCross是的,但在这种情况下,我不认为有什么明显的区别:-) –

+0

嗯,你不知道代码将被执行多少次,所以我不确定你真的有多少根据你的信念:-) –