如何选择字符串中特定字符右侧的所有字符-PHP

如何选择字符串中特定字符右侧的所有字符-PHP,php,string,substr,strpos,chars,Php,String,Substr,Strpos,Chars,我花了很长时间想弄明白!当我不知道将有多少个字符时,如何选择字符串中特定字符右侧的所有字符?假设我要选择字符串中第一个下划线右侧的所有字符: $stringLength = strlen($string_I_want_to_strip); $limiterPos = strpos($string_I_want_to_strip, "_"); $reversePos = $limiterPos - $stringLength + 1; $charsToTheRight = substr($stri

我花了很长时间想弄明白!当我不知道将有多少个字符时,如何选择字符串中特定字符右侧的所有字符?

假设我要选择字符串中第一个下划线右侧的所有字符:

$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);
您还可以执行以下操作:

$str = 'some_long_string';
echo explode( '_', $str, 2)[1]; // long_string

使用
strpos
查找特定字符的位置,然后使用
substr
获取其后面的所有字符。

我不确定这是否符合您的需要,但是:

$string = explode(',','I dont know how to, get this part of the text');

$string[1]不总是分隔符的右侧吗?除非字符串中有多个相同项。。。如果不是您想要的,很抱歉。

只需使用
strstr

$data = 'Some#Ramdom#String';
$find = "#" ;
$string = substr(strstr($data,$find),strlen($find));
echo $string;
输出

Ramdom#String

必须将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');

(请注意,您也可以搜索一组字符)

可能希望在
$pos+1
上使用substr,以仅获取该字符的正确位置。现在是多字节字符!UTF-8获胜!函数就是这么做的是的!你说得对!这正是我想要的。奇怪的是,我在搜索中找不到它。:)当字符串中有多个分隔符时,此操作将失败。您需要指定限制参数。我已经将其投入生产,因为它正是我想要的。。。它选择分隔符右侧的所有字符。但是,更好的方法是“explode()”。
function strRightFromChar($char, $string) {
    $positionFromEnd = strlen($string) - strpos($string, $char);
    $result = substr($string, ($positionFromEnd)*-1);
    return $result;
}
echo strRightFromChar('te', 'my test string');