次のスニペットでは、pre_matchは最初の緯度の後に大変多くの文字を、その後に経度を返します。
私が後にしているのは、最終的な緯度と経度のペアです。
2つの読み取り値の間のスペースを最大4文字に制限するにはどうすればよいですか?
.*?
という表現では文字数が多すぎます。
これを変更して番号を小さくするにはどうすればよいですか?preg_matchパターンでワイルドカードの一致文字数を制限するにはどうすればよいですか?
<?php
$lcline="tuesday, 20th. light airs and clear weather. p.m. started at latitude 24 degrees 12 minutes took several azimuth, which gave the variation 16 degrees 30 minutes west. put the ship's company to three watches. wind variable; course south 21 degrees 30 minutes west; distance 28 miles; latitude 31 degrees 17 minutes, longitude 17 degrees 19 minutes west; at noon, funchall, island of madeira, north 13 degrees east, 76 miles. ";
preg_match('/(latitude\s+\d+\s+degrees\s+\d+\s+minutes.*?longitude\s+\d+\s+degrees\s+\d+\s+minutes)/', $lcline, $results);
echo "results=".$results[0]."<BR><BR>"
?>
連続4つの空白文字をすべて選択します。変わる*? 〜に。{1,4}は緯度と経度の読みの間のギャップを制限します – user2016210
しかし、キャプテンクックのログのテキストファイルをループして、一度に1行ずつ抽出すると、この行はすべての行で一致するものを見つけることができません。 - 何百もありますが! – user2016210