|
Posted by Jochem Maas on 09/26/05 22:32
David Pollack wrote:
> I need to catch all instances of a coordinate in a give string. So far I
> have this, which only works if the coordinate is in a certain format.
>
>
> $string = (334,-53.44),(111,222);
> $expression = '([(][-]?[0-9]*[.0-9]*?,[-]?[0-9]*[.0-9]*?[)])';
here's a horrid little bit of .... for you :)
<?php
$testStr = <<< EOD
> \$string = (334,-53.44),(111,222);
> preg_match_all(\$expression, "\$string", \$matches);
>
> This returns the correct strings (334,-53.44) and (111,222), but Id like
> all formats to work. Like (111, 222), ( 111 , 222 ), (111, 222 ), etc, etc.
> How would I change my regex to accomplish this?
EOD;
$coordRE = "(?:[ ]?[-+]?\\d+(?:\\.\\d+)?[ ]?)";
$coordsRE = "#(\\({$coordRE},{$coordRE}\\))#";
$matches = array();
preg_match_all($coordsRE, $testStr, $matches);
var_dump($testStr, $matches);
?>
> preg_match_all($expression, "$string", $matches);
^-- why ? ...
are you wrapping the variable in double quotes?
>
> This returns the correct strings (334,-53.44) and (111,222), but I'd like
> all formats to work. Like (111, 222), ( 111 , 222 ), (111, 222 ), etc, etc.
> How would I change my regex to accomplish this?
>
> --
> David Pollack
> DHPollack@gmail.com
>
> www.atlspecials.com <http://www.atlspecials.com>
> www.da3.net <http://www.da3.net>
>
[Back to original message]
|