0

我有以下字符串

$string = "Hello World!<br />- 8/7/2013<br />Content<br />- 8/6/2013<br />Hello World";

我想提取破折号+空格(“-”)和下一个换行标记之间的所有信息。那可能吗?我一直在研究谷歌几个小时,但没有运气。我在想我需要一个“-”的 strpos 数组和以下换行标记,然后对它们进行批处理。但是,当然,如果您能以其他任何方式做到这一点,那将非常感激!

4

2 回答 2

0

正则表达式将为您提供最大的控制权,但这里有一个使用 strpos 和 substr 的快速演示来获得您所要求的内容:

$strStart = strpos($string, '- ');
$strLength = strpos($string, '<br') - $strStart;
substr( $string, $strStart, $strLength );
于 2013-08-07T21:26:04.617 回答
0

我已经更新了我的答案以处理多次出现。

你可以用一个简单的正则表达式来做到这一点:

preg_match_all("@- (.*)<br />@U", $string, $matches);
print_r($matches[1]);

以上将打印

Array
(
    [0] => 8/7/2013
    [1] => 8/6/2013
)

这匹配任何有意义- (.*)<br />的模式。这里的s 用作分隔符以将实际模式与修饰符分开(在这种情况下意味着不贪婪的匹配)。(.*)@U

于 2013-08-07T21:26:09.207 回答