OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

s/\s*$// の意味

  • すぐに回答を!
  • 質問No.120198
  • 閲覧数280
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

perlでは

  s/\s*$//

というコマンドがあり、これを $a=~s/\s*$//; みたいな使い方を
する事により、変数$aの後ろにある空白と改行コードを削除すると聞いてます。
しかし、このコマンドの何が空白を削除し、何が改行を削除しているような
詳しい部分は間ではしりません。
もし、このコマンドについてご存知の方がいらっしゃいましたら、
詳しく解説していただけないでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル14

ベストアンサー率 44% (757/1696)

s  置換コマンド(substitute)で、デリミッタで区切られた(正規表現の)文字列を、次に区切られた文字列で置換する

/  デリミッタ(区切り文字)

\  エスケープ文字

\s  スペース、タブ、改行のいずれか1文字を意味する

*  正規表現(regular expression)で、直前のパターンの0回以上の繰り返し

$  文字列の末尾を表す



--つまり----------------------------------------

\s*     で、空白や改行の繰り返し(_あ___いう__ の、_ 部分)

\s*$    で、行末の複数の空白と改行

s/AAA/BBB/ で、AAA(正規表現) を BBB に置換する

s/\s*$//  で、\s*$ を、// の中の文字列、つまり「無」に置換する
お礼コメント
noname#149114

早速のアドバイスありがとうございます。
各記号と詳しい説明までして頂きありがとうございます。
また何かありましたら宜しくお願い致します。
投稿日時 - 2001-08-18 01:56:30
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 32% (64/196)

私はPerlは詳しくないですが、これは正規表現ではないでしょうか。 正規表現は直接Perlには関係ありません。 sedやawkなどのUNIXコマンドでも多用されます。 \sはスペース、*は直前文字の0回以上の繰り返し(ここではスペース)、 $は行末を示します。sコマンドはs/a/b/という風に使って、 文字列aをbに変換するという意味ですから、 全体では「行末にあるスペースの0回以上の繰り返し ...続きを読む
私はPerlは詳しくないですが、これは正規表現ではないでしょうか。
正規表現は直接Perlには関係ありません。
sedやawkなどのUNIXコマンドでも多用されます。
\sはスペース、*は直前文字の0回以上の繰り返し(ここではスペース)、
$は行末を示します。sコマンドはs/a/b/という風に使って、
文字列aをbに変換するという意味ですから、
全体では「行末にあるスペースの0回以上の繰り返しを削除する」
という意味になります。
お礼コメント
noname#149114

早速のアドバイスありがとうございます。
これはUNIX上でのコマンドであったわけですね。
どおりでPerlの事を調べても見つからないわけです。
詳しいところまで解説していただきありがとうございました。
投稿日時 - 2001-08-18 01:54:21


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ