ereg到preg_match转换 - 得到晴雨表

时间:2013-06-23 04:03:57

标签: php regex ereg

我需要一些帮助将旧的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

1 个答案:

答案 0 :(得分:1)

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

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

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);