Re: Problem with Regexp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard Heyes schrieb:

Yannick Mortier wrote:

Hello,

I have the string:

<tr><td><img src="http://www.runescape.com/img/hiscores/attack.gif"; valign="bottom" width=16 height=16 /></td><td>&nbsp;</td><td><a href="hiscoreuser.cgi?username=zezima&category=1" class=c>Attack</a></td><td align="right">4</td><td align="right">99</td><td align="right">53,156,556</td></tr>


and I apply preg_match_all:

preg_match_all("/(<tr><td><img src=\"http:\/\/www.runescape.com\/img\/hiscores\/attack.gif\" valign=\"bottom\" width=16 height=16 \/><\/td><td>&nbsp;<\/td><td><a href=\"hiscoreuser.cgi\?username=)([\w])+(&category=1\" class=c>Attack<\/a><\/td><td align=\"right\">)([1-9])+(<\/td><td align=\"right\">)([1-9])+(<\/td><td align=\"right\">)([1-9,])+(<\/td><\/tr>)/",$seite,$attack);


...

But I would expect to get
[2] => Array
       (
           [0] => zezima
       )
[6] => Array
       (
           [0] => 99
       )
[8] => Array
       (
           [0] => 53,156,556        )

Instead of the values above.

Can you explain me how I can get those values?


Try something like:

preg_match_all('#username=([^&]+).+<td align="right">\d+</td><td align="right">(\d+)</td><td align="right">([\d, ]+)</td>#i', $seite, $matches);

print_r($matches);

Not tested - might need tweaking.

Now it works! I still use mine, but i put the + directly after the closing bracket:
([\d]+) instead of ([\d])+

Thanks a lot for your help! I looked at your reg exp and saw this.

Yannick Mortier

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux