我需要解析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