首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析::ABNF perl用法

解析::ABNF perl用法
EN

Stack Overflow用户
提问于 2014-02-21 15:43:09
回答 2查看 296关注 0票数 0

我需要解析SIP头( ABNF格式的grammar),并验证我的头字符串是否正确。

(示例:检查"Accept: application/sdp,application/3gpp-imp+xml“之类的字符串以提供测试用例通过/失败)。

目前,我正在尝试使用perl Parse::ABNF。现在我不能理解这个上下文中的示例用法。

EN

回答 2

Stack Overflow用户

发布于 2014-02-21 23:12:33

我的Parse::ABNF模块读取ABNF语法,并允许您访问语法中的规则。它会告诉您类似于“floating-point-number规则引用digit规则”之类的内容,但是它不会为浮点数生成解析器。您可以使用该模块将适当的ABNF语法转换为解析器生成器(如Parse::RecDescentMarpa2 )可以使用的格式。这种转换的示例脚本包含在发行版中,名为eg/abnf2xlx.pl。但是请注意,您链接到的页面上的语法并不完全符合Parse::ABNF所期望的符合标准的格式。

票数 1
EN

Stack Overflow用户

发布于 2014-02-21 17:23:40

你可以这样使用这个模块:

代码语言:javascript
复制
  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));

只解析头部的更简单的方法:

代码语言:javascript
复制
  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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21928268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档