gpt4 book ai didi

regex - 如何跟踪正则表达式匹配的执行?

转载 作者:行者123 更新时间:2023-12-04 23:14:44 25 4
gpt4 key购买 nike

在评估 m// 期间,是否有一种方便的方法可以跟踪正则表达式引擎的状态?或 s///表达?

顺便说一句,我知道有一个 Regexp::Debugger package可以通过 CPAN 获得(而且它非常酷),但我没有看到一种方法可以从中获得任何类似的痕迹;我不想逐步完成大量潜在的步骤。

最佳答案

是的。将正则表达式引擎转为 Debug模式,它将打印正在执行的操作:

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]+"

关于regex - 如何跟踪正则表达式匹配的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45842317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com