如何提取与preg_match匹配的字符串

时间:2013-06-17 17:10:43

标签: php preg-match

我从html文件中提取了类名,每行包含类名

      </div><div id='css-11_uss_pss_sss-__i__' class='sss'> <div class="sss-top">
      </div><div id='css-42_aap-8' class='css'> <div class="sss-top">

我需要从不同的行中提取'uss_pss_sss'和'aap-8'

我尝试使用此代码来提取第一个条件。

            preg_match("/(?<=_).*?(?=-__i__)/", $buffer, $match);

如何提取第二行?

1 个答案:

答案 0 :(得分:0)

你不能出于两个原因:

1)aap-8不能是您的模式的结果,因为您的前瞻断言中没有显示-__i__

2) preg_match 函数只给出第一个匹配,你必须使用 preg_match_all 而不是

您可以通过以下方式解决这两个问题:

preg_match_all("/(?<=_).*?(?=-(?:__i__)?|')/", $buffer, $matches);
print_r($matches);