2

次のように、文字列内の空白を削除する代わりに正規表現を記述したいと思います。

文字列:user1: group user2 :group2 user3 : group3

user1:group user2:group2 user3:group3

私がこれまでに試したことは次のとおりです。

$argument =~ s/\s+\:/\:/g;
4

2 に答える 2

5

あなたはもうすぐそこにいます:

$argument =~ s/\s*:\s*/:/g;

をエスケープする必要はなく:、コロンの前後の両方で空白を検索する必要があります。1つ以上を検索する代わりに、0個以上を検索するもの\s+を使用しました。\s*そうすれば、前にスペースがなく、後にスペースがない場合、またはその逆の場合に一致します。

于 2012-09-27T18:18:10.310 に答える
1

編集(コロンの前にもスペースがある可能性があることに気づいていませんでした):

$yourString =~ s/\s*:\s*/:/g;

おもう。私は決してperlを話さないことに注意してください。

于 2012-09-27T18:20:19.450 に答える