2016-10-23 10 views
-6

文字列にスペースとタブの両方があります。私は、文字列内のスペースのすべての出現を削除したいが、そのままタブスペースを維持したいと思います。 テキストファイルをインポートするときにタブ区切りオプションをExcelで使用できるようにタブを保存しますか? ありがとうスペースのみを削除し、文字列内のタブを無視したい

答えて

2

タブはASCII文字0x09です。スペースは0x20です。スペースがタブには影響しません交換...

$str = "1 2 3\t4 5 6\t7 8 9\n"; 
$str =~ s/ //g; 
# $str is now "123\t456\t789\n" 

は、正規表現への導入のためperlrequickを見てみましょう。

1

[私は通常、このような質問「私のためにコードを書く」答えられないだろうが、私は既存の正規表現ベースの答えの代わりを与える答えを持っていることが重要だと思いました。]

ながら、 s/.../.../を使用して文字列から文字を削除することができますが、Perlの正規表現エンジンのすべての能力を呼び出すことは、おそらくそれほど単純ではありません。音訳演算子(tr/.../.../)は、/dオプションを使用して、ターゲット文字列から特定の文字を削除します。

#!/usr/bin/perl 

use strict; 
use warnings; 

my $str = "1 2 3\t4 5 6\t7 8 9\n"; 

print $str; 

$str =~ tr/ //d; 

print $str; 
+0

素晴らしいコメントですが、これはずっと前にこれを使用していましたが、実際にはそれを忘れていました:) –

関連する問題