我有一个像这样的字符串:
a b c d
我像这样处理我的字符串:
chomp $line; my @tokens = split /\s+/,$line; my @new_tokens; foreach my $token (@tokens) { push @new_tokens,some_complex_function( $token ); } my $new_str = join ' ',@tokens;
我想重新加入原始空格的字符串.有什么方法可以存储分割的空白并在以后重新使用它?或者这会是一个巨大的痛苦?它主要是装饰性的,但我想保留输入字符串中的原始空格.
解决方法
如果使用带有捕获括号的正则表达式进行拆分,则拆分模式将包含在结果列表中(请参阅
perldoc -f split):
my @list = split /(\s+)/,'a b c d'; print Data::Dumper::Dumper(\@list); VAR1 = [ 'a',' ','b',' ','c',' ','d' ];