Re: Optimal Regex?
| From: | Jochem Maas | Date: | Mon, 26 Sep 2005 19:32:51 +0000 |
| Subject: | Re: Optimal Regex? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-223230@lists.php.net to get a copy of this message | ||
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>