我有以下字符串
$string = "Hello World!<br />- 8/7/2013<br />Content<br />- 8/6/2013<br />Hello World";
我想提取破折号+空格("-"(和下一个换行符之间的所有信息。这可能吗?我已经研究了谷歌几个小时,但没有运气。我想我需要"-"和以下换行标记的 strpos 数组,然后批量替换它们。但是,当然,如果您能以任何其他方式做到这一点,那将不胜感激!
我已经更新了我的答案以处理多次出现。
您可以使用简单的正则表达式来执行此操作:
preg_match_all("@- (.*)<br />@U", $string, $matches);
print_r($matches[1]);
以上将打印
Array
(
[0] => 8/7/2013
[1] => 8/6/2013
)
这与模式- (.*)<br />
相匹配,(.*)
任何意义。这里的@
用作分隔符,将实际模式与修饰符分开(在这种情况下U
表示不商定的匹配(。
正
则表达式将为您提供最大的控制权,但这里有一个使用 strpos 和 substr 的快速演示来获取您要求的内容:
$strStart = strpos($string, '- ');
$strLength = strpos($string, '<br') - $strStart;
substr( $string, $strStart, $strLength );