Loose-Info.com
Last Update 2008/05/18
TOP - Perl - 関数 - substr

文字列の一部を取り出して返します。

戻り値1 = substr 式1 , 値1

戻り値1
取り出した部分文字列
式1
取り出される元となる文字列
値1
文字列を切り出す開始位置
負の場合は終端から数値分戻った位置
終端(右端)までが切り出される

戻り値1 = substr 式1 , 値1 , 値2

戻り値1
取り出した部分文字列
式1
取り出される元となる文字列
値1
文字列を切り出す開始位置
負の場合は終端から数値分戻った位置
値2
切り出す文字数
負の場合は終端から数値分は取り出さない

substr( 式1 , 値1 , 値2 ) = 値3

式1
元となる文字列
値1
置換する文字列の先頭位置
負の場合は終端から数値分戻った位置
値2
置換文字数
負の場合は終端から数値分は取り出さない
値3
置換文字列

(例)
$s_test = "abcdefghijklmn"; # 位置指定の基準は0文字目 print "6文字目以降取り出し : " . substr($s_test, 5) . "\n"; print "終端から3文字目以降取り出し : " . substr($s_test, -3) . "\n"; print "3文字目から3文字取り出し : " . substr($s_test, 2, 3) . "\n"; print "3文字目から終端から3文字目まで取り出し : " . substr($s_test, 2, -3) . "\n"; $s_test2 = "abcde"; substr($s_test2, 2, 1) = "123"; print "3文字目を\"123\"に置換 : " . $s_test2 . "\n";

実行結果
6文字目以降取り出し : fghijklmn 終端から3文字目以降取り出し : lmn 3文字目から3文字取り出し : cde 3文字目から終端から3文字目まで取り出し : cdefghijk 3文字目を"123"に置換 : ab123de