如何获得下划线之后的任何内容?

时间:2012-02-03 19:09:51

标签: php

我有这个字符串:21839547737_10150750480732738

在PHP中,我如何获得 下划线_后的任何内容?

9 个答案:

答案 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而不是空字符串),它也会返回正确的结果。