Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発なら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/;
Giblog