【发布时间】:2014-01-09 01:17:15
【问题描述】:
我在http://regex101.com/ 上练习了很多,但我这辈子都无法正确预赛。
我正在尝试从多个标签中获取部分 onclick 函数,但这只会弄得一团糟。
<a href="https://URL" onclick="return ajax({code:'page/97b7a6651b9f3f3H',form_id:'id456',top:0,update_id:'inner-container'});" class="get-button" target="_top"><span class="button"><span class="icon"> </span>Attack</span></a>
<a href="https://URL" onclick="return ajax({code:'page/97b7a6651b96c6b7e398f',form_id:'id123',top:0,update_id:'inner-container'});" class="get-button" target="_top"><span class="button"><span class="icon"> </span>Attack</span></a>
它像这样返回 -> 3dc061fb74fe59orm_id:'bounty_attack_form_515998115'});" class="get-button" target="_top"> 攻击
我只想要 97b7a6651b9f3f3H 和 97b7a6651b96c6b7e398f。
我尝试了多种方法,我知道这个 php 代码是错误的,但这就是我所拥有的。 preg_match_all("/ge/(.*)',f/", $server_output, $matches); $remove = array("ge/","',f");
foreach ($matches[0] as $match)
{
$match = str_replace($remove, "", $match);
echo '[ ' . $match . ' ]<br>';
}
【问题讨论】:
-
我已经在regex101.com 上练习了很多,但我这辈子都无法正确地进行预赛......还没有练习很多! :-)
-
说真的,您不需要使用 preg_match 来查找某些内容,然后将其替换为 str_replace。您可以使用 preg_replace 并应用相同的正则表达式规则。 us3.php.net/manual/en/function.preg-replace.php
-
我只是 str_replacing 因为它留下了我无法正确匹配的额外代码。我查看了您发布的网址,但如果变量并不总是相同,那么我不能这样做。
-
我们只能用您给我们修复的代码来回答解决方案...
-
我建议不要使用正则表达式来解析 HTML,试试像 PHP Simple HTML DOM Parser 或 phpQuery 这样的 HTML 解析器
标签: php preg-match-all