如何跟踪正则表达式匹配的执行?
发布时间:2020-12-14 06:02:27 所属栏目:百科 来源:网络整理
导读:有没有一种方便的方法来在评估m //或s ///表达式时获取正则表达式引擎的状态? 顺便说一句,我知道通过CPAN可以获得Regexp::Debugger package(而且非常酷),但是我没有办法从它那里得到任何类似的痕迹;我不想逐步完成大量的步骤. 解决方法 是.将正则表达式引擎
有没有一种方便的方法来在评估m //或s ///表达式时获取正则表达式引擎的状态?
顺便说一句,我知道通过CPAN可以获得Regexp::Debugger package(而且非常酷),但是我没有办法从它那里得到任何类似的痕迹;我不想逐步完成大量的步骤. 解决方法
是.将正则表达式引擎转为调试模式,它将打印它正在做的事情:
use re 'debug'; my $str = "abcdefg"; $str =~ m/[ef]+/; 这给出了一个输出: Compiling REx "[ef]+" Final program: 1: PLUS (13) 2: ANYOF[ef] (0) 13: END (0) stclass ANYOF[ef] plus minlen 1 Matching REx "[ef]+" against "abcdefg" Matching stclass ANYOF[ef] against "abcdefg" (7 bytes) 4 <abcd> <efg> | 1:PLUS(13) ANYOF[ef] can match 2 times out of 2147483647... 6 <abcdef> <g> | 13: END(0) Match successful! Freeing REx: "[ef]+" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |