我在正则表达式构建中需要帮助,包括html标记,重复模式等http://regex101.com/r/iD3xT7/1
我已经完成了部分内容但是当我想重复<a\s[^<>]*>([^<>]*)<\/a>\s
的模式时, 重复 会失败。就像递归一样。我需要完整的模式。
答案 0 :(得分:2)
警告:您不应该使用正则表达式进行HTML解析,
因为在SO上已多次说过。
那就是说,你不能只重复超链接模式。
为了更清晰,您应该使用自己的正则表达式提取每种数据。 PHP中的示例:
$html = /* choose your way to retrieve the HTML */;
$movie = array();
preg_match('/Released:.*?<td>(.+?)<\/td>/s', $html, $matches);
$movies['lucy']['released'] = $matches[1];
preg_match('/Runtime:.*?<td>(.+?)<\/td>/s', $html, $matches);
$movies['lucy']['runtime'] = $matches[1];
preg_match_all('/<a[^>]*?genre[^>]*?>(.+?)<\/a>/', $html, $matches);
$movies['lucy']['genres'] = $matches[1];
var_dump($movies);
/*
array(1) {
["lucy"]=>
array(3) {
["released"]=>
string(13) "July 25, 2014"
["runtime"]=>
string(8) "90 mins "
["genres"]=>
array(2) {
[0]=>
string(6) "Action"
[1]=>
string(6) "Sci-Fi"
}
}
}
*/