2

我正在尝试从此数据文件(链接)中获取来自 ESNU/UMEA 的机场数据

我正在尝试匹配单词 ESNU/UMEA 之后和列出的下一个机场之前的所有内容(尝试匹配“四个字母”“斜线”“超过三个字母”以匹配下一个机场标识符。

我做了很多尝试,但仍然没有成功,非常感谢任何帮助。

到目前为止我的代码:

$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 回答