我有一个字符串
$string="abc @def @xyz $ @def @xyz";
现在我想获得$符号之前@符号的最后一次出现的索引。
目前我正在使用
strrpos($string,'@');
strrpos的第三个参数是开始索引,我们可以给结束索引吗?
使用 strrpos
函数可以得到最后一次出现的位置。更多信息请参见function.strrpos
针对您的目的,您需要使用 $
将字符串分解,并从分解后数组的第一个 index
开始应用 strrpos
。
试试这个:
$string="abc @def @xyz $ @def @xyz";
$strArr = explode('$', $string);
$pos = strrpos($strArr[0], "@");
if ($pos === false) { // note: three equal signs
echo 'Not Found!';
}else
echo $pos; //Output 9 this case
$string="abc @def @xyz $ @def @xyz";
$pos = strrpos($string, '@', -strrpos($string, '$'));
if($pos === false){
echo 'Not Found!';
}else{
echo $pos; // 9
}
注意:负号将返回$符号前最后一个 @ 符号的索引。
$
符号的位置作为偏移量即可。 - Rizier123"abc @def @xyz $ @def @xyz $ @bca"
,会怎么样? - RomanPerekhrest