#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS