我已经在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>
它像这样返回 - &gt; 3dc061fb74fe59orm_id:'bounty_attack_form_515998115'});“class =”get-button“target =”_ top“&gt; Attack
我只想要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>';
}
答案 0 :(得分:0)
我猜测有一种更简洁的方法可以做到这一点,但这很有效:
$string = "<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>";
$string .= "<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>";
preg_match_all("/code:\'page\/(.*?)\'/", $string, $matches);
foreach ($matches as $match) {
if (isset($match[1])) {
$codes[] = $matches[1];
}
}
var_dump($codes);
看到它的实际效果: http://ideone.com/YkIWig
如果有人比我更聪明的想要编辑这个,请做!
答案 1 :(得分:0)
preg_match_all("/page\/\K\w*/", $string_to_search, $array);
print_r($array);
匹配页面/确切地说,\ K删除匹配的部分,然后它允许任意数量的字母或数字,直到它击中非字母或数字,如'
结果进入一个数组,可以作为$ array [0] [x]
访问