从字符串中获取字符串后的字符串

Ale*_*lex 44 php string

从这样的字符串中只获取important_stuff部分的最快方法是什么:

bla-bla_delimiter_important_stuff
Run Code Online (Sandbox Code Playgroud)

_delimiter_ 总是存在,但字符串的其余部分可以改变.

jon*_*tar 63

这里:

$arr = explode('delimeter', $initialString);
$important = $arr[1];
Run Code Online (Sandbox Code Playgroud)

  • 在PHP 5.4中...特别是对于这种情况......你可以做以下一个班轮...`$ important = explode("delimeter",$ initialString)[1];` (7认同)
  • 在分隔符出现多次的情况下,此解决方案不起作用。 (3认同)

小智 32

$result = end(explode('_delimiter_', 'bla-bla_delimiter_important_stuff'));
Run Code Online (Sandbox Code Playgroud)

  • 这将抛出:严格标准:只应通过引用传递变量.您必须将explode()分配给temp var. (3认同)

Ham*_*ish 6

$importantStuff = array_pop(explode('_delimiter_', $string));

  • 这将抛出一个`E_STRICT`错误(严格标准:只有变量应该通过引用传递),因为array_pop使用了引用,但它仍然有效. (4认同)

Byr*_*ock 5

$string = "bla-bla_delimiter_important_stuff";
list($junk,$important_stufF) = explode("_delimiter_",$string);

echo $important_stuff;
> important_stuff
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢使用列表.当你第一次拥有数组时我认为你已经向我展示了一个类似python的php功能我还不知道! (2认同)

小智 5

我喜欢这种方法:

$str="bla-bla_delimiter_important_stuff";
$del="_delimiter_";
$pos=strpos($str, $del);
Run Code Online (Sandbox Code Playgroud)

从分隔符的末尾切割到字符串的末尾

$important=substr($str, $pos+strlen($del)-1, strlen($str)-1);
Run Code Online (Sandbox Code Playgroud)

注意:

1)对于substr,字符串从'0'开始,而strpos&strlen取字符串的大小(从'1'开始)

2)使用1个字符分隔符可能是一个好主意