简体   繁体   English

从字符串中提取新闻ID

[英]Extract news ids from the string

I have a string with long HTML-content like: 我有一个长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

from which I am trying to extract all news ids and write them in array. 我试图从中提取所有新闻ID并将其写入数组。 As you can see all the ids are placed between "?st=" and " target" markers. 如您所见,所有ID都位于“?st =”和“ target”标记之间。 Would appreciate much for advising the best method to solve this task. 非常感谢您建议解决此任务的最佳方法。 Thank you. 谢谢。

Use the below regex in preg_match_all function to get an array of all the id's preg_match_all函数中使用以下正则表达式获取所有ID的数组

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

DEMO 演示

If you don't want to fetch the id which isn't followed by the string target ( last id ) then remove the |$ from the above regex. 如果您不想获取不带字符串target最后一个id )的ID,则从上述正则表达式中除去|$

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM