如何在某个角色之后获得所有内容?

2022-08-30 06:30:47

我有一个字符串,我想在某个值之后获取所有内容。该字符串始终以一组数字开头,然后以下划线开头。我想在下划线之后获取字符串的其余部分。例如,如果我有以下字符串和我想要返回的内容:

"123_String" -> "String"
"233718_This_is_a_string" -> "This_is_a_string"
"83_Another Example" -> "Another Example"

我该怎么做才能做这样的事情?


答案 1

strpos() 查找下划线的偏移量,然后 substr 从该索引加 1 开始获取所有内容。

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;

如果还想在尝试获取字符串之前检查字符串中是否存在下划线字符 (),则可以使用以下方法:_

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}

答案 2

strtok是这类事情的一个被忽视的功能。它意味着非常快。

$s = '233718_This_is_a_string';
$firstPart = strtok( $s, '_' );
$allTheRest = strtok( '' ); 

像这样的空字符串将强制返回字符串的其余部分。

注意,如果在“_”之后根本没有任何东西,您将获得一个值,如文档中所述,必须使用===进行测试,以区别于其他虚假值。FALSE$allTheRest


推荐