我有这个字符串:21839547737_10150750480732738
在PHP中,我如何获得 下划线_
后的任何内容?
答案 0 :(得分:10)
$str = '21839547737_10150750480732738';
$parts = explode('_', $str);
$result = $parts[1];
答案 1 :(得分:7)
您应该使用substr函数和strpos函数
$string = "21212121312312_11231231231323213";
$afterunderscore = substr($string, strpos($string, "_") + 1);
这将为您提供下划线后的信息
答案 2 :(得分:3)
例如:
next(explode('_', $string));
答案 3 :(得分:3)
这将返回第一个下划线(您的示例)之后的所有内容:
$str = '21839547737_10150750480732738';
echo substr($str, strpos($str, '_') + 1);
// Result: 10150750480732738
如果您有多个下划线,它将返回第一个下划线后的所有内容:
$str = '21839547737_10150750480732738_12342134234';
echo substr($str, strpos($str, '_') + 1);
// Result: 10150750480732738_12342134234
如果您只想要 last 下划线后的部分,请改为使用strrpos
:
$str = '21839547737_10150750480732738_12342134234';
echo substr($str, strrpos($str, '_') + 1);
// Result: 12342134234
答案 4 :(得分:1)
这是来自php.net网站,尝试使用strstr
<?php
$string = '21839547737_10150750480732738';
$after = strstr($string, '_');
echo $after; // prints _10150750480732738
?>
答案 5 :(得分:0)
有很多方法可以做到这一点。有关不同功能的更多信息,请查看http://php.net/manual/en/ref.strings.php。你可以在下划线“分割”字符串,你可以找到下划线的位置,而不是使用substr来获取所有内容。请仔细阅读各种字符串函数,了解为您的应用程序执行此操作的最佳方法。
答案 6 :(得分:0)
正则表达式是:_(\d+)
使用preg_match:
preg_match(/_(\d+)/, "21839547737_10150750480732738", $matches, PREG_OFFSET_CAPTURE);
现在您有$matches
的匹配项。
答案 7 :(得分:0)
使用断言就可以了。当然,您可以使用explode
代替。
preg_match('/(?<=_).*/', '21839547737_10150750480732738', $match);
答案 8 :(得分:0)
if($pos = strpos($str, '_'))
$str=substr($str, $pos+1);
if(!$str) $str='';
如果没有下划线,则返回第一个下划线之后的所有内容或整个字符串。
即使下划线是最后一个字符(substr是烦人的并且返回false而不是空字符串),它也会返回正确的结果。