Re: Problem with Regexp

From: Date: Mon, 31 Oct 2005 22:40:04 +0000
Subject: Re: Problem with Regexp
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-224904@lists.php.net to get a copy of this message
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

« previous php.general (#224904) next »