PHP:用正则表达式摘录

时间:2011-01-19 23:57:29

标签: php regex preg-replace

我试图通过匹配这个 - [...]

来摘录我的内容
$content_filtered = preg_replace("/<p>(.*?)\[...\](.*?)<\/p>/is", "<p>$1...</p>[...]<p>$2</p>", $item['pg_content_1']);

然后爆炸这个[...]

$array_content = explode('[...]', $content_filtered);

制作摘录,

$content_current = $array_content[0]; 

当我使用[...]这样的时候,它可以正常工作,

<p>Lorem Ipsum is simply dummy text of[...] the printing and typesetting industry.</p>

它会产生类似的东西,

Lorem Ipsum is simply dummy text of...

但如果我在[...]之前放置一个空格,

<p>Lorem Ipsum is simply dummy text of [...] the printing and typesetting industry.</p>

然后点在摘录中会有一个空白区域,

Lorem Ipsum is simply dummy text of ...

如何摆脱那个空白区?

我认为我必须使用下面这一行中的正则表达式,但我不知道如何!

preg_replace("/<p>(.*?)\[...\](.*?)<\/p>/is", "<p>$1...</p>[...]<p>$2</p>", $item['pg_content_1']);

如果您有任何想法,请告诉我!

感谢。

1 个答案:

答案 0 :(得分:0)

尝试在[...]之前捕获空白,并使用?:

忽略它
"/<p>(.*?)(?:\s*)\[...\](.*?)<\/p>/is"