如何使用PHP

时间:2015-04-29 22:14:19

标签: php regex preg-match

我有一个文本,我希望返回字符串,直到第一次出现模式"不包括模式"

这是我的文字

Hello World,
I should see this and only this <br> test<br>
On Apr 29, 2015, at 11:50 AM, Blah &lt;<a href=
"mailto:blah@blah.com">blah@blah.com</a>&gt;
wrote:<br>

我正在寻找的模式是这样的

On____<______>___ wrote:

以下是文字

的示例
On Apr 29, 2015, at 11:50 AM, Blah &lt;<a href=
"mailto:blah@blah.com">blah@blah.com</a>&gt;
wrote:<br>

找到这个模式试过这段代码

$pattern = '~On.*?<([^>]*)>\s+wrote:~';
$isWebApp = preg_match($pattern, $message, $matches);

if($isWebApp !== false && isset($matches[0]) ){
    $pos = strpos($message, $matches[0]);
    $message = substr($message, 0, $pos);
}
echo $message;

但它没有用。

我的预期输出是

Hello World,
    I should see this and only this <br> test<br>

如何更正模式以使其找到我要找的内容?

1 个答案:

答案 0 :(得分:0)

$x = '
Hello World,
I should see this and only this <br> test<br>
On Apr 29, 2015, at 11:50 AM, Blah &lt;<a href=
"mailto:blah@blah.com">blah@blah.com</a>&gt;
wrote:<br>
';

    preg_match('/On(.*?)wrote/s',$x,$m);

    echo $m[1];

将输出:

2015年4月29日上午11点50分,Blah&lt; blah@blah.com>