Php如何在一个句子中使用爆炸

时间:2011-04-07 05:16:37

标签: php

我正在考虑这样做的方法。我想在一个句子中得到一些文字。

这是数据库中$ item_title的示例:

cat1 + cat1 + sub1 of cat1 + test1 of sub1 of cat1

我想做的就是从第一个'+'

开始判断句子

在这种情况下,我希望:

cat1的sub1 + cat1的sub1的测试1

$pieces = explode(" + ", $item_title);
$idonotneed = $pieces[0]; // cat1 

5 个答案:

答案 0 :(得分:3)

$pieces = explode(" + ", $item_title, 2);

您可以传递第三个参数,该参数代表您希望接收的最大细分数量。

$pieces[0]将成为第一部分; pieces[1]其余的。

答案 1 :(得分:1)

$pieces = explode(' + ', $item_title);
array_shift($pieces);
$wanted = implode(' + ', $pieces);

答案 2 :(得分:1)

preg_replace('/^.*?\+ /', '', $item_title);

它基本上从字符串的开头删除任何东西,直到遇到+和空格...如果没有+后跟一个空格,它将返回整个句子

分解正则表达式:

  • .*?匹配任何角色(非贪婪,将在一秒内解释)。
  • \+ /一个加号,后跟一个空格(此处添加/结束分隔符,否则空格不会显示。

如果没有?使第一部分不贪婪,它将与最后一个+匹配。

如果正则表达式与任何内容都不匹配,则不会替换任何内容,并且将返回整个字符串。

答案 3 :(得分:1)

您也可以使用 strpos substr 执行此操作。

$text = "cat1 + sub1 of cat1 + test 1 of sub1 of cat1";
$pos = strpos($text, '+');
echo substr($text, $pos+1);

答案 4 :(得分:0)

无需explode()或正则表达式。

$wanted = substr($item_title, strpos($item_title, '+') + 1);

或者:

$wanted = substr(strstr($item_title, '+'), 1);