2011-08-09 8 views
0

私はすぐに正規表現を使うことを学ばなくてはなりませんが、今は "50.080215,14.393983"のGPSフォーマットのチェックがどういうものか、マイク氏に感謝する必要があります。PHP - GPSの正規表現はどのように見えますか?

+0

lat、longまたはlong latですか? –

+0

http://www.insyte-solutions.com/index.php?option=com_content&view=article&id=68:validating-and-parsing-gps-sentences&catid=37:articles&Itemid=54を参照してください。 – Sukumar

答えて

1

文字列の中にコンマで区切られた2つの10進数(空白?)を探したいですか?

$pattern = "/(?P<lat>(\d+(\.\d+)?)),\s*(?P<lon>(\d+(\.\d+)?))/"; 

これは必要でない場合は、各数の小数部分が存在しないことを前提と精度の桁の数に制約を課すありません。あなたの入力コーパスに応じて、これはあなたが望むより頻繁に一致します。より良い仕様では、より堅いパターンを構築することができます。ある

$pattern = "/(?P<lat>-?([1-8]?[1-9]|[1-9]0)(\.\d{1,6})?)(?P<lon>-?(1?[1-7][1-9]|1?[1-8]0|[1-9]?[0-9])(\.\d{1,6})?)/"; 

:我々は、このパターンを構築することができる。例えば、我々は、その緯度が90包括的にフォーム-90を実行する指定した場合と経度は-180〜180含めから実行され、両方の精度までの6桁を有していてもよいです仮想仕様の外にある "90.999999,180.999999"にマッチするという点でこの仕様のわずかなバグです。これを修正して、読者のための練習として残しました。