PerlでTrimする!
VB系では、文字列の両端にあるスペースを削除するに有名なTrimがあります。
しかし、Perlでは、残念ながらTrimはありませんが、以下の正規表現で一発です。
$string =~ s/^\s*(.*?)\s*$/$1/;
ちょっと解説です。
- まずは、\sは、文字クラス[ \t\n\r\f](左端にスペース含む)と同義です。
- 始めに、文字列の先頭から\sの0回の連続にマッチさせる。
- つぎに、任意1文字の0回の連続に最小マッチさせて、これを$1に記憶する。
- そして、\sの0回の連続を後尾までマッチさせる。
- 最後に、文字列全体を$1で置換する。
以下のように、2回に分ければ、両端でも片方のみでも大丈夫です。
$string =~ s/^\s+//; $string =~ s/\s+$//;
追記:
上記は、半角系のスペース文字に対するTrimです。全角系のスペースを考慮に入れると以下が参考になります。