これにより、なぜ badmatch エラーが発生するのですか? これが失敗する理由がわかりません:
<<IpAddr, ":*:*">> = <<"2a01:e34:ee8b:c080:a542:ffaf:*:*">>.
これにより、なぜ badmatch エラーが発生するのですか? これが失敗する理由がわかりません:
<<IpAddr, ":*:*">> = <<"2a01:e34:ee8b:c080:a542:ffaf:*:*">>.
バイナリのパターン マッチングは左から右に進むためIpAddr
、次のセグメントを試す前に最初に一致します。一致するまで後戻りはありません。のようなデフォルトの型付き変数は、IpAddr
1 バイトに一致します。適切な説明とその他の例については、ビット構文式とビット構文を参照してください。
ここでパターン マッチングを使用する代わりに、binary
モジュールの使用を検討することもできます。あなたに役立つ 2 つの関数があります:binary:match/2/3
とbinary:split/2/3
. これらの検索は、あなたの問題により適している可能性があります。
re
最後の代替手段として、正規表現とモジュールを使用してみることができます。