根据句子结构从​​字符串中提取文本

时间:2015-12-09 22:18:27

标签: php string

这可能已经被问过了,如果有的话,我道歉,但我一直在寻找,我不知道如何说出我的问题。

我有这个文字字符串:

$text = "You have received a message.  The quote request is from Cade Carrier; and is for these items: Tires: 195 60 15 - Direct Input (2).";

我需要提取的是 Cade Carrier 。我知道客户的名字后面总是会跟一个分号(如上面的示例所示),并且前面总是以开头。引用请求来自(在之后有一个空格) )。

如何从这句话中删除我需要的文字?

2 个答案:

答案 0 :(得分:2)

一个简单的正则表达式会:

preg_match('/The quote request is from ([^;]+);/', $text, $match);

echo $match[1];

匹配给定的文本,然后捕获()任何不是[]一个或多个分号^的{​​{1}}字符+,直到分号。< / p>

答案 1 :(得分:1)

关于非正则表达式问题,你可以像这样提取

$text = "You have received a message.  The quote request is from Cade Carrier; and is for these items: Tires: 195 60 15 - Direct Input (2).";

$text2 = strstr($text, ";", true); // get everything before the first ;
$from = strpos($a, "from ") + 5; // +5 for the 5 chars of "from "
$str = substr($a, $from);
var_dump($str); // string(12) "Cade Carrier"