PHP正则表达式,仅返回部分结果

PHP正则表达式,仅返回部分结果,php,regex,Php,Regex,我有以下PHP正则表达式: @<tr[\s\S]*?<a class="b1"[\s\S]*?<em[^>]*>([^<]*)[\s\S]*?stars_small_([0-9].[0-9])@ [1] => Array ( [0] => AC/DC Live: Rock Band Track Pack [1] => Ace Combat 6: Fires of Liberat

我有以下PHP正则表达式:

@<tr[\s\S]*?<a class="b1"[\s\S]*?<em[^>]*>([^<]*)[\s\S]*?stars_small_([0-9].[0-9])@
[1] => Array
        (
            [0] => AC/DC Live: Rock Band Track Pack
            [1] => Ace Combat 6: Fires of Liberation
            [2] => All-Pro Football 2K8
            [3] => Alone in the Dark
            [4] => Armored Core 4
            [5] => Army of Two
            [6] => Army of Two: The 40th Day
        )

    [2] => Array
        (
            [0] => 3.5
            [1] => 2.5
            [2] => 3.5
            [3] => 3.5
            [4] => 2.5
            [5] => 3.5
            [6] => 3.5
        )
这就是我要找的,但是我似乎没有得到所有的数据。我应该得到以下标题和分数。但出于某种原因,我只得到了其中的一些

AC/DC Live: Rock Band Track Pack     
Ace Combat 6: Fires of Liberation    
Afro Samurai         
Alan Wake    
Aliens vs. Predator  
All-Pro Football 2K8    
Alone in the Dark   
Amped 3     
Armored Core 4  
Army of Two 
Army of Two: The 40th Day   
Assassin's Creed     
Assassin's Creed II  
Assassin's Creed: Brotherhood    
Avatar: The Game
我在这里测试了我的正则表达式:

使用此HTML:

@<tr[\s\S]*?<a class="b1"[\s\S]*?<em[^>]*>([^<]*)[\s\S]*?stars_small_([0-9].[0-9])@
[1] => Array
        (
            [0] => AC/DC Live: Rock Band Track Pack
            [1] => Ace Combat 6: Fires of Liberation
            [2] => All-Pro Football 2K8
            [3] => Alone in the Dark
            [4] => Armored Core 4
            [5] => Army of Two
            [6] => Army of Two: The 40th Day
        )

    [2] => Array
        (
            [0] => 3.5
            [1] => 2.5
            [2] => 3.5
            [3] => 3.5
            [4] => 2.5
            [5] => 3.5
            [6] => 3.5
        )


如果有人能帮我解释为什么我只能得到一些结果,我将不胜感激。谢谢

将子模式
stars\u small([0-9].[0-9])
更改为
stars\u small([0-9](?:\.[0-9])?)
,因为一些URL在
IMG
标记的
SRC
属性中只有一个数字。

您应该使用html解析器来解析html。是的,我想可能有更简单的方法来实现这一点。但我想花点时间学习正则表达式。您会推荐哪种解析器?如果安装了DOMDocument,您可以使用它,它是php本身的一部分。好的,谢谢。我以后会调查的。啊。。这是有道理的。谢谢你的帮助。@japanFour。
?:
只会使括号内的组无法捕获。\转义
,因此被解释为文本
,而不是通配符元字符。括号内的组后面的
使其成为可选的,即可能有一个
和另一个数字。好的。谢谢你的解释。