Perlゼミ

  1. Perl
  2. 標準関数
  3. here

substr関数 - 文字列の切り出し・置換

substr関数を使用すると、指定した位置の文字を切り出す、あるいは置換することができます。第1引数は文字列、第2引数は開始位置、第3引数は切り出す長さです。開始位置は0から始まります。第3引数を省略した場合は文字列の末尾までが対象になります。

# 切り出し
my $word_like = substr($message, 2, 4);

指定した位置の文字を置換するするには、第4引数に文字列を指定します。

# 置換
substr($message, 2, 4, 'want to eat');

substr関数のサンプルプログラム

substr関数を使って、指定した位置の文字を切り出すサンプルです。以下の例では文字列「Ken」が抽出されます。

# 指定した位置の文字を切り出す。切り出される文字列は「Ken」。
my $message = "I'm Ken";
my $name = substr($message, 4, 3);

substr関数を使って、指定した位置の文字列を置換するサンプルです。

# 指定した位置の文字を置換する。置換後は「I'm Mike」になる。
my $message = "I'm Ken";
substr($message, 4, 3, 'Mike');

日本語を扱いたい場合

substr関数で、日本語を正しく扱うには、文字列が内部文字列になっている必要があります。内部文字列については、以下の記事をご覧ください。

正規表現で置換する

文字列の置換は正規表現を使って行うこともできます。文字の位置ではなく、対象の文字列を指定したい場合は、正規表現を使いましょう。

# 正規表現を使ってKenをTaroに置換
my $message = "I'm Ken";
$message =~ s/Ken/Taro/;
Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ、Perlで元気。
ゆとりあるITエンジニアライフのために
Perl情報を前向きに発信中!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!