在Perl中,如何将所有换行符转换为字符串中的空格?
发布时间:2020-12-15 23:31:18 所属栏目:大数据 来源:网络整理
导读:是否有任何函数可用于将字符串中的所有换行符转换为空格? 例如: $a = "dflsdgjsdgdsfsd gf sgd g sdgsdfgsd"; 我要找的结果是: $a = "dflsdgjsdg dsfsd gf sgd g sdg sdf gsd" 解决方法 我建议限制使用$a和$b来排序例程. 对于你的问题,tr ///比s ///更合
是否有任何函数可用于将字符串中的所有换行符转换为空格?
例如: $a = "dflsdgjsdg dsfsd gf sgd g sdg sdf gsd"; 我要找的结果是: $a = "dflsdgjsdg dsfsd gf sgd g sdg sdf gsd" 解决方法
我建议限制使用$a和$b来排序例程.
对于你的问题,tr ///比s ///更合适: #!/usr/bin/perl use strict; use warnings; my $x = q{dflsdgjsdg dsfsd gf sgd g sdg sdf gsd}; $x =~ tr{n}{ }; print $x,"n"; __END__ 输出: C:Temp> ttt dflsdgjsdg dsfsd gf sgd g sdg sdf gsd 更新:我不认为TMTOWTDI在这里使用除了tr ///以外的任何东西是合理的.首先,在语义上,OP要求的是音译,因此使用音译是有意义的.其次,至少在我的带有5.10的Windows XP笔记本电脑上,基准模块提供了明显的对比: #!/usr/bin/perl use strict; use warnings; use Benchmark qw( cmpthese ); use constant LONG_STRING => "n" x 1_000_000; cmpthese -10,{ subst => sub { my $x = LONG_STRING; $x =~ s{n}{ }g; return; },split_join => sub { my $x = LONG_STRING; $x = join ' ',split /n/,$x; return; },tr => sub { my $x = LONG_STRING; $x =~ tr{n}{ }; return; },nop => sub { my $x = LONG_STRING; return; } }; __END__ 结果: Rate split_join subst tr nop split_join 0.354/s -- -85% -100% -100% subst 2.40/s 578% -- -99% -100% tr 250/s 70514% 10320% -- -92% nop 3025/s 854076% 125942% 1110% -- 还有一个更新:我应该指出tr ///到s ///的相对性能取决于源字符串的大小和组成.我在这里选择插图的情况绝对是极端的.使用不太极端的输入字符串,性能比似乎接近15:1而不是100:1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |