多线正则表达式 - 如何匹配句子?

时间:2014-04-01 13:48:40

标签: php regex

我需要帮助从以下文本中提取状态:

    <br>
    From: Florida
    <br>


    <br>

        New York, Texas, California<br>



        10% Delay chance
        <br>

它只是较大文档的一部分,因此可能会出现<br>的其他情况,因此我无法依赖它们的计数。但是,只有1次出现以下模式:From:.+<br>.+<br>.+(.+).+% Delay chance<br>。使用PHP:

$pattern = "/.+From:.+<br>.+<br>.+(.+).+% Delay chance<br>/ism";

1 个答案:

答案 0 :(得分:0)

由于没有人提供解决方案,除了(不是真正有帮助的)评论以避免解析HTML,我最终提出了这个问题:

$string = preg_replace ( "/\s+/" , " " , $string );
preg_match("!(?:.*?\K<br>){3}(?P<states>.*?)<br>!", $string, $match);

$match['states']将包含各州。