0

古い ereg 式を preg_match に変換する助けが必要です。気圧計(高度計)を空港のMETARから取り出したいと思っています。

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

上記は、preg_match に変換する必要がある式です。これを次のように試しましたが、「0」が返されます。

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

METARに慣れていない方のために説明すると、次のようになります。

4

1 に答える 1

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);
于 2013-06-23T04:05:33.803 に答える