#navi(../)
* Perlで文字列の切り出しをする方法・substr [#fce22ae9]
Perlで文字列内の特定の場所を切り出すには、substr関数を利用すると便利です。~
以下にsubstrを使用して先頭から10文字切り出しと後方から10文字切り出しと20文字切り出しのサンプルコードを記します。
#contents
#htmlinsertpcsp(ll-top.html,ll-sp.html)
* 関連記事 [#td01e8a9]
-[[Perlでファイル内のテキスト情報をgrepする方法>Perl/サンプル/Perlでファイル内のテキスト情報をgrepする方法]]
-[[Perlで文字列の切り出しをする方法・substr>Perl/サンプル/文字列の切り出しをする方法・substr]]
-[[Perlでパス付きファイル名からファイル名のみ抽出する方法・basename>Perl/サンプル/パス付きファイル名からファイル名のみ抽出する方法・basename]]
-[[Perlで配列のデータをCSV出力する方法・join>Perl/サンプル/配列のデータをCSV出力する方法・join]]
* substr関数 [#f877bf03]
substr関数で文字列の切り出しを行う場合は以下の構文になります。
substr(文字列, 開始位置, 切り出す文字数);
開始位置は0からはじまりますので注意してください。~
また「切り出す文字数」は省略可能です。~
substr(文字列, 開始位置);
切り出す文字数が省略されているので、開始位置から最後までが文字列の切り出し対象となります。
* substr関数を使ったサンプルコード [#o9dd1f7f]
以下のサンプルコードは、先頭から10文字、後方から10文字と20文字をsubstr関数を利用して切り出すサンプルです。~
後方から20文字を切り出すsubstr関数は、第3引数の「切り出す文字数」を省略しています。
#ref(substr.pl.zip)
#!/usr/bin/perl
$str = "0123456789abcdefghijklmnopqrstuvwxyz";
$left10 = substr($str, 0, 10);
printf "LEFT 10 character: %s\n", $left10;
$right10 = substr($str, length($str) - 10, 10);
printf "RIGHT 10 character): %s\n", $right10;
$right20 = substr($str, length($str) - 20);
printf "RIGHT 20 character: %s\n", $right20;
** substr関数を使ったサンプルコードの実行結果 [#cd8a9858]
上記のサンプルコードを実行したときの出力です。~
[sakura@centos ~]$ chmod +x substr.pl
[sakura@centos ~]$ ./substr.pl
LEFT 10 character: 0123456789
RIGHT 10 character): qrstuvwxyz
RIGHT 20 character: ghijklmnopqrstuvwxyz
#htmlinsertpcsp(ll-btm.html,ll-sp.html)