文字列の操作 文字列を操作する関数として、substr関数があります。 文字列の取り出し、置き換え、削除、追加などを行うことができます。 構文 substr ( 文字列, 開始位置, 文字長 ) substr ( 文字列, 開始位置 ) 文字列」から部分文字列を取り出して返す。 部分文字列は、文字列の先頭から数えて「開始位置」番目から始まる(先頭は 0 から数える)。 「開始位置」が負の場合は、文字列の末尾からマイナス「開始位置」文字だけ戻ったところが部分文字列の先頭になる。 「文字長」を省略すると、文字列の末尾までがすべて返される。 文字列の取り出し $word = "yaruo"; $cut = substr($word, 0, 4); print "$cut\n"; <出力結果> yaru 文字列の追加 $word = "aaa"; substr($word, 0, 0) = "bbb"; print "$word\n"; <出力結果> bbbaaa 文字列の置き換え $word = "yaruo"; substr($word, 0, 4) = "yaranai"; print "$word\n"; <出力結果> yaranaio 文字列の削除(先頭から削除) $word = "aaabbb"; substr($word, 0, 4) = ""; print "$word\n"; <出力結果> bb 文字列の削除(末尾から削除) $word = "aaabbb"; substr($word, -4, 2) = ""; print "$word\n"; <出力結果> aabb 正規表現 正規表現は / / 記号で指定検索文字列を囲みます Perlでは、パターンマッチ演算子として、スラッシュ ( / ) で囲んだ文字列が正規表現であるとされます。 性格上、正規表現は条件式と併用して用いられることが多いようです。この場合次のような構文があります。 構文 意味 if ( 文字列 =~ /パターン/) もし「文字列」の中に「パターン」が含まれていれば真 if ( 文字列 !~ /パターン/) もし「文字列」の中に「パターン」が含まれていなければ真 (パターンマッチすれば偽) $word = 'hoge'; # もし$wordの中に og が含まれていれば if ($word =~ /og/) { print "あるのね。\n"; } else { print "ないのね。\n"; } <出力結果> あるのね。 また、上記構文(パターンマッチすれば真)の省略形の位置づけとして、 次の構文があります。この場合、対象となる「文字列」は特殊変数 $_ が充てられます。 構文 意味 if (/パターン/) もし変数 $_ の中に「パターン」が含まれていれば (パターンマッチすれば真) $_ = 'abc'; if (/b/) { print "含まれています。\n"; } else { print "含まれていません。\n"; } <出力結果> 含まれています。