我有一个模式被匹配到一个大字符串,使用 preg_match_all,它得到了正确的匹配,但是它似乎进入每个匹配项并尝试找到更多匹配项,然后进入每个匹配项并在它停止时停止最后在一个空字符串上。听起来像是某种递归,但我不需要也不想要这个,有没有办法阻止它?
感谢您的任何帮助!
function getCategories($source)
{
$categories = array();
$pattern = "~<span class=.*\n<table class=.*\n<tr>\n<th.*\n<.th>\n<th.*\n<.th>\n<th.*\n<.th>\n<th.*\n<.th>\n<th.*\n<.th>\n<th.*\n<.th><.tr>\n(<tr id=.*\n(.*\n){6}<.td><.tr>(<.table>)?\n)*~";
preg_match_all($pattern, $source, $categories);
return $categories;
}
$categories = getCategories($source);
print_r($categories);