小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

index/rindexとsubstr

正規表現での置換が得意になるとあまり使わなくなる、しかし基本のindex/rindexとsubstrです。


indexとrindexは、全文字列中に検索部分文字列を探し、あった場合は0オリジンでオフセットを返します。
indexとrindexの違いは、先頭から検索するか後尾から検索するかの違いです。
尚、後尾から検索した場合でも、オフセットは先頭からになります。


substrは、全文字列中をオフセットから指定長分を取得したり、それを置換文字列で置換したりします。
ただし、index/rindexとsubstrは、ともに正規表現は使えない。

$string = 'abc123dfghijklmnopqrstuvw123';
$substring = '123';
$replace = 'xyz';
$pos = rindex($string, $substring); # $posは、25で、後ろの123にマッチ
substr($string, $pos,length($substring)) = $replace;
print $string, "\n"; #abc123dfghijklmnopqrstuvwxyzを表示