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

时间:2012-07-10 01:35:19

标签: php string

我有一个字符串,我希望获得一定价值后的所有内容。该字符串始终以一组数字开头,然后是下划线。我想在下划线后得到其余的字符串。例如,如果我有以下字符串以及我想要返回的内容:

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

我该如何做这样的事情?

7 个答案:

答案 0 :(得分:261)

strpos()找到下划线的偏移量,然后substr抓取该索引加1的所有内容。

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

如果您还想检查字符串中是否存在下划线字符(_),然后再尝试获取它,则可以使用以下内容:

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

答案 1 :(得分:10)

对于这类事情,

//Make sure to hold the strong reference to the moduleInitaliser self.moduleInitialiser = RNModuleInitialiser() self.bridge = RCTBridge(delegate: self.moduleInitialiser, launchOptions: nil) 是一个被忽视的功能。它的意思非常快。

strtok

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

注意' _'之后什么也没有。您将获得$s = 233718_This_is_a_string; $firstPart = strtok( $s, '_' ); $allTheRest = strtok( '' ); 的{​​{1}}值,如documentation中所述,必须使用===进行测试,以区别于其他虚假值。

答案 2 :(得分:8)

以下是使用explode

的方法
$text = explode('_', '233718_This_is_a_string', 2)[1]; // Returns This_is_a_string

或:

$text = @end((explode('_', '233718_This_is_a_string', 2)));

通过为explode()中的2参数指定limit,它返回具有由字符串分隔符分隔的2个最大元素的数组。返回第二个元素([1])将给出其余的字符串。

使用strpos(由@flu建议),这是另一个单线:

$needle = '233718_This_is_a_string';
$text = substr($needle, (strpos($needle, '_') ?: -1) + 1); // Returns This_is_a_string

答案 3 :(得分:1)

如果有人需要提取字符串的第一部分,那么可以尝试,

<强>查询:

$s = "This_is_a_string_233718";

$text = $s."_".substr($s, 0, strrpos($s, "_"));

<强>输出:

This_is_a_string

答案 4 :(得分:0)

另一种简单的方法,使用strchr()strstr()

$str = '233718_This_is_a_string';

echo ltrim(strstr($str, '_'), '_'); // This_is_a_string

答案 5 :(得分:0)

$string = "233718_This_is_a_string";
$withCharacter = strstr($string, '_'); // "_This_is_a_string"
echo substr($withCharacter, 1); // "This_is_a_string"

只需一个语句。

echo substr(strstr("233718_This_is_a_string", '_'), 1); // "This_is_a_string"

答案 6 :(得分:0)

我使用strrchr()。例如,要找到文件的扩展名,我可以使用以下功能:

$string = 'filename.jpg';
$extension = strrchr( $string, '.'); //returns ".jpg"