2

このデータファイルからESNU/UMEAから空港データを取得しようとしています(リンク

ESNU / UMEAという単語の後、リストされている次の空港の前にすべてを一致させようとしています(次の空港識別子と一致するように、「4文字」「スラッシュ」「3文字以上」と一致させようとしています。

私は多くの試みをしましたが、まだ成功していません。どんな助けでも大歓迎です。

これまでの私のコード:

$url = "http://www.lfv.se/AISInf2.asp?TextFile=idunesaavfr.txt&SubTitle=&T=Sverige%20VFR&Frequency=250";
$raw = file_get_contents($url);

preg_match('/ESNU\/UMEA([\s\S]*?)([A-Z]{4}/[A-Z]{3,})/',$raw,$data,PREG_OFFSET_CAPTURE);
4

1 に答える 1

2

パターンはスラッシュで囲まれているため、スラッシュをエスケープする必要があります。

preg_match('/ESNU\\/UMEA(.*?)([A-Z]{4}\\/[A-Z]{3,})/',$raw,$data,PREG_OFFSET_CAPTURE);

また、シングルバックスラッシュをダブルバックスラッシュに変更しましたが、PHPは不明な文字の前のバックスラッシュをリテラルのバックスラッシュとして解釈するため、厳密には必要ありません。
さらに、同等のものに変更し[\s\S]ました。.

また、囲んでいる文字を#次のように変更することもできます。

preg_match('#ESNU/UMEA(.*?)([A-Z]{4}/[A-Z]{3,})#',$raw,$data,PREG_OFFSET_CAPTURE);
于 2012-09-22T12:25:31.457 に答える