0

我需要一些帮助将旧的 ereg 表达式转换为 preg_match。我想将气压计(高度计)从机场 METAR 中拉出。

ereg('^(A|Q)([0-9]{4})',$part,$pieces)

以上是我需要转换为 preg_match 的表达式。我尝试了以下但它返回'0'。

preg_match('/^(A)([0-9]{4})/',$metar)

对于那些不熟悉 METAR 的人来说,它看起来像这样:KLAX 230353Z 26007KT 9SM BKN009 19/16 A2985 RMK AO2 SLP105 T01890161高度计是A2985

4

1 回答 1

1

您必须删除开始的 anchor ^,因为您的子字符串不在字符串的开头。

如果要提取某些内容,则必须添加结果变量:

if (preg_match('/([AQ])([0-9]{4})/',$metar, $match))
    print_r($match);

请注意,为了提高安全性,您可以添加单词边界:

if (preg_match('/\b([AQ])([0-9]{4})\b/',$metar, $match))
    print_r($match);
于 2013-06-23T04:05:33.803 回答