从字符串中提取新闻ID

时间:2014-10-31 07:01:04

标签: php html regex

我有一个包含长HTML内容的字符串,如:

<TABLE cellPadding=3 width=100%><td><font class=btime>20:53</font>&nbsp;&nbsp;<a href=news2.php?st=1414691580 target=right>Кыргызстан: понастроили мечетей.., - Омор Рысбаев</a><br><font class=btime>20:50</font>&nbsp;&nbsp;<a href=news2.php?st=1414691400 target=right>Исламская Изида: как джихадисты вынуждают западные компании менять названия</a><br><font class=btime>20:48</font>&nbsp;&nbsp;<a href=news2.php?st=1414691280 target=right>Не прошло и двух лет. Российский летчик Петренко освобожден из плена талибов в Афганистане</a><br><font class=btime>19:58</font>&nbsp;&nbsp;<a href=news2.php?st=1414688280 target=right>Игорь Стрелков объявил о создании общественного движения "Новороссия"</a><br><font class=btime>19:27</font>&nbsp;&nbsp;<a href=news2.php?st=1414686420 target=right>Давление США на Россию будет только нарастать. Зачем Путин дал слабину? - Гао Фэн</a><br><font class=btime>19:21</font>&nbsp;&nbsp;<a href=news2.php?st=1414686060 target=right>Путин не знает страны, в которой живет. Тайга давным-давно полыхает.., - Э.Ханымамедов</a><br><font class=btime>19:11</font>&nbsp;&nbsp;<a href=news2.php?st=1414685460 target=right>Протестующие в Буркина-Фасо подожгли парламент, пытаясь свернуть бессменного (с 1987) президента Блэза Компаоре</a><br><font class=btime>18:37</font>&nbsp;&nbsp;<a href=news2.php?st=1414683420

我试图从中提取所有新闻ID并将其写入数组中。正如您所看到的,所有ID都放在&#34;?st =&#34;之间。和&#34;目标&#34;标记。非常感谢建议解决此任务的最佳方法。谢谢。

1 个答案:

答案 0 :(得分:0)

preg_match_all函数中使用以下正则表达式获取所有ID的数组

\?st=\K\S+(?=\s*target|$)

DEMO

如果您不想提取后跟字符串target最后一个ID )的ID,请从中删除|$上面的正则表达式。

\?st=\K\S+(?=\s*target)