我是一个PHP新手。我试图在下面的程序中使用preg_match_all函数来查找所有主题与他们的标记,但我只得到一个匹配。我一直在为此奋斗了5个小时。有人能帮我弄清楚什么是错的吗?提前致谢。preg_match_all只返回一个匹配
$semArray="STUDENTS NAME (7ab05cs001)
Semester: | 2 | Result: FIRST CLASS |
Subject | External | Internal | Total | Result |
Engineering Maths - II (06MAT21) | 51 | 16 | 67 | P |
Engineering Chemistry (06CHE22) | 40 | 17 | 57 | P |
Computer Concepts and C Programming (06CCP23) | 70 | 23 | 93 | P |
Computer Aided Engineering Drawing (06CED24) | 50 | 16 | 66 | P |
Basic Electronics (06ELN25) | 42 | 17 | 59 | P |
Computer Programming Lab (06CPL26) | 46 | 24 | 70 | P |
Engg. Chemistry Lab (06CHEL27) | 41 | 19 | 60 | P |
Environmental Studies (06CIV28) | 48 | 25 | 73 | P |
Total Marks: | 545 |
function get_result_for_this_sem($semArray)
{
preg_match("/Semester:
(.)/",$semArray,$temp1);$sem_no=$temp1[1];
preg_match("/Result: (.+)
$sem_final_result=$temp2[1];
preg_match_all("/((.+?)\((.+?)\))
([0-9]{1,3})([0-9]{1,2})([0-9]{1,3}) (.)/",$semArray,$temp3,PREG_SET_ORDER);print_r($temp3);
}
get_result_for_this_sem($semArray);
?>
这里是我得到的输出:
Array ([0] => Array ([0] => Engineering Maths - II (06MAT21)511667P [1] => Engineering Maths - II (06MAT21) [2] => Engineering Maths - II [3] => 06MAT21 [4] => 51 [5] => 16 [6] => 67 [7] => P))
+5
您不应该尝试使用正则表达式解析HTML。改为使用适当的HTML分析器。 –
2010-08-14 17:52:30
+2
试图阅读正则表达式时,我的眼睛受伤。 –
2010-08-14 17:52:54