当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中调试正则表达式?

如何解决《如何在Python中调试正则表达式?》经验,为你挑选了1个好方法。

有没有办法在Python中调试正则表达式?而且我不是指尝试和尝试直到他们工作的过程:)

以下是如何在Perl中调试正则表达式:

use re 'debug';

my $str = "GET http://some-site.com HTTP/1.1";
if($str =~/get\s+(\S+)/i) {
    print "MATCH:$1\n";
}

上面的代码在运行时在我的计算机上产生以下输出:

Compiling REx "get\s+(\S+)"
Final program:
   1: EXACTF  (3)
   3: PLUS (5)
   4:   SPACE (0)
   5: OPEN1 (7)
   7:   PLUS (9)
   8:     NSPACE (0)
   9: CLOSE1 (11)
  11: END (0)
stclass EXACTF  minlen 5
Matching REx "get\s+(\S+)" against "GET http://some-site.com HTTP/1.1"
Matching stclass EXACTF  against "GET http://some-site.com HTTP/1.1" (33 chars)
   0           |  1:EXACTF (3)
   3        |  3:PLUS(5)
                                  SPACE can match 1 times out of 2147483647...
   4       |  5:  OPEN1(7)
   4       |  7:  PLUS(9)
                                    NSPACE can match 20 times out of 2147483647...
  24       |  9:    CLOSE1(11)
  24       | 11:    END(0)
Match successful!
MATCH:http://some-site.com
Freeing REx: "get\s+(\S+)"

Mykola Khare.. 17


>>> p = re.compile('.*', re.DEBUG)
max_repeat 0 65535
  any None
>>>                         

正则表达式'|' 运算符vs每个子表达式的单独运行



1> Mykola Khare..:

>>> p = re.compile('.*', re.DEBUG)
max_repeat 0 65535
  any None
>>>                         

正则表达式'|' 运算符vs每个子表达式的单独运行


这只是答案的一半,它显示了正则表达式编译的内容,但没有显示它是如何针对给定字符串执行的.如果有人知道另一半,请分享!
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有