我正在尝试从具有动态ID的div中解析一些代码,例如: (其中xxxx代表随机数)。
是否可以通过使用正则表达式来匹配所有可能的id(例如1111后,1213后等)来刮除给定div的元素。
这是我的代码:
dd`
$target_html = $list_array[$i]->href;
$ftp_html = file_get_html($target_html);
$ftp_list = $ftp_html->find('div.main', 0);
$ftp_array = $ftp_list->find('div#post-4885 a[id="player"]');
for($j = 0; $j < sizeof($ftp_array); $j++){
print_r($ftp_array[$j]->rel.'<br>');
}
echo '<hr>';
服务器上的HTML示例:
<div class="main>
<div id="post-xxxx:>
elements...
</div></div>`
答案 0 :(得分:1)
当然可以刮除 TAG (仅)。
你在这里
(帖子ID在组2中,整个标签在组0中)
(?si)<div(?=(?:[^>"']|"[^"]*"|'[^']*')*?\sid\s*=\s*(?:(['"])\s*(post-\d+).*?\1))\s+(?:".*?"|'.*?'|[^>]*?)+>
https://regex101.com/r/VcWo2D/1
可读
(?si)
<div
(?=
(?: [^>"'] | " [^"]* " | ' [^']* ' )*?
\s id \s* = \s*
(?:
( ['"] ) # (1)
\s*
( post- \d+ ) # (2)
.*?
\1
)
)
\s+
(?: " .*? " | ' .*? ' | [^>]*? )+
>