我需要一些帮助将旧的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 。
答案 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);