当前位置: 首页 > 面试题库 >

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

解宏扬
2023-03-14
问题内容

有没有办法在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+)"

问题答案:

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




 类似资料:
  • 问题内容: 在Python中使用正则表达式,如何验证用户密码为: 至少8个字符 必须限制于,但不特别要求以下任何一项: 大写字母:AZ 小写字母:az 数字:0-9 任何特殊字符:@#$%^&+ = 注意,所有字母/数字/特殊字符都是可选的。我只想验证密码长度至少为8个字符,并且限制为字母/数字/特殊字符。用户可以选择使用强弱密码。到目前为止,我所拥有的是: 问题答案: 的意思是“至少8”。该函数

  • 我使用的是javax.validation.constraints。模式注释以验证来自屏幕的数据是否符合我的要求? 我的代码如下: 数据应按照以下样本数据进行验证。 正确的测试用例(以下是可接受的值): 测试 但是使用的正则表达式不接受以下数据。 132456 我用错正则表达式了吗?

  • 问题内容: 我需要一些帮助来声明正则表达式。我的输入如下: 所需的输出是: 我已经试过了: 我也尝试过此方法(但似乎我使用了错误的regex语法): 我不想replace从1到99 进行硬编码。。。 问题答案: 这个经过测试的代码段应该做到这一点: 编辑:这是一个注释的版本,说明其工作方式: 正则表达式很有趣!但我强烈建议你花一两个小时来学习基础知识。对于初学者,你需要了解哪些特殊字符:需要转义的

  • 问题内容: 我想在内部使用,该怎么办Python? 问题答案: 从python 3.6开始,你还可以使用文字字符串插值。在你的特定情况下,解决方案是:

  • 如何简化这个正则呢? 或者是否有其他实现方式(正则)?

  • 问题内容: 我正在Google App Engine上构建应用程序。我是Python的新手,在过去3天里,我一直对下面的问题problem之以鼻。 我有一个代表RSS Feed的类,在这个类中,我有一个名为setUrl的方法。输入此方法的是URL。 我正在尝试使用re python模块来验证RFC 3986 Reg- ex(http://www.ietf.org/rfc/rfc3986.txt)