我花了很长时间试图解决这个问题!当我不知道会有多少个字符时,如何选择字符串中特定字符右侧的所有字符?
答案 0 :(得分:3)
// find the position of the first occurrence of the char you're looking for
$pos = strpos($string, $char);
// cut the string from that point
$result = substr($string, $pos + 1);
答案 1 :(得分:2)
你也可以这样做:
$str = 'some_long_string';
echo explode( '_', $str, 2)[1]; // long_string
答案 2 :(得分:2)
我不确定这是否符合您的需求,但是:
$string = explode(',','I dont know how to, get this part of the text');
$ string [1]总是不是分隔符的右侧吗?除非你在字符串中有多个相同的...抱歉,如果它不是你想要的。
答案 3 :(得分:1)
使用strpos
查找特定字符的位置,然后使用substr
抓取其后的所有字符。
答案 4 :(得分:1)
只需使用strstr
$data = 'Some#Ramdom#String';
$find = "#" ;
$string = substr(strstr($data,$find),strlen($find));
echo $string;
输出
Ramdom#String
答案 5 :(得分:1)
您必须使用带负起始整数
的substr$startingCharacter = 'i';
$searchString = 'my test string';
$positionFromEnd = strlen($searchString)
- strpos($searchString, $startingCharacter);
$result = substr($searchString, ($positionFromEnd)*-1);
或在函数中:
function strRightFromChar($char, $string) {
$positionFromEnd = strlen($string) - strpos($string, $char);
$result = substr($string, ($positionFromEnd)*-1);
return $result;
}
echo strRightFromChar('te', 'my test string');
(请注意,您也可以搜索一组字符)
答案 6 :(得分:-1)
假设我想在我的字符串中选择第一个下划线右侧的所有字符:
$stringLength = strlen($string_I_want_to_strip);
$limiterPos = strpos($string_I_want_to_strip, "_");
$reversePos = $limiterPos - $stringLength + 1;
$charsToTheRight = substr($string_I_want_to_strip, $reversePos, $limiterPos);