我需要解析SIP头文件(grammar ABNF格式)并验证我的头文件字符串是否正常。解析:: ABNF perl用法
(例如:检查字符串如“Accept:application/sdp,application/3gpp-imp + xml”以提供测试用例通过/失败)。
目前我正在尝试使用perl Parse::ABNF。现在我无法理解这种情况下的示例用法。
我需要解析SIP头文件(grammar ABNF格式)并验证我的头文件字符串是否正常。解析:: ABNF perl用法
(例如:检查字符串如“Accept:application/sdp,application/3gpp-imp + xml”以提供测试用例通过/失败)。
目前我正在尝试使用perl Parse::ABNF。现在我无法理解这种情况下的示例用法。
你可以以这种方式使用此模块:
use Parse::ABNF;
use Test::More;
use Data::Dumper;
my $parser = Parse::ABNF->new;
my $rules = $parser->parse($sip_message);
ok(defined $rules,'The SIP messgae is parseable') or diag(Dumper($sip_message));
解析只是标题中的更简单的方法:
use Test::More;
use Data::Dumper;
ok($sip_message =~ m!Accept: application/sdp,application/3gpp-imp+xml!,'The SIP header looks found') or diag(Dumper($sip_message));
我Parse::ABNF
模块读取ABNF语法和允许您访问的规则语法。它告诉你诸如“floating-point-number
规则引用digit
规则”之类的东西,但它不会为浮点数生成解析器。您可以使用该模块将适当的ABNF语法转换为分析器生成器可以使用的格式,如Parse::RecDescent
或Marpa2
。这种转换的示例脚本包含在分配中,作为eg/abnf2xlx.pl
。但请注意,链接到的页面上的语法不完全符合Parse::ABNF
预期的符合标准的格式。
感谢您的意见。我仍然面临着解决我的问题的困难。请求下面看看我的问题,并提供解决方案的指针。 – user3336154