阐明这个Python正则表达式和调试信息

2024-05-14 21:14:13 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> rr = re.compile(u"[\24C2]+", re.DEBUG)
max_repeat 1 4294967295
  in
    literal 20
    literal 67
    literal 50

错误地,我在上面的正则表达式中输入了\24C2,而不是\u24C2。调试时,我试图理解调试输出。在上面的输出中,literal 20literal 67literal 50是什么意思?他们从哪里来?你知道吗


Tags: indebugre错误rrmaxrepeatcompile
1条回答
网友
1楼 · 发布于 2024-05-14 21:14:13

文本来自指定regex模式中指定范围内的字符(或unicode字符串的unicode码点的整数值)的顺序表示。你知道吗

>>> chr(20)
'\x14'
>>> chr(67)
'C'
>>> chr(50)
'2'

如果你不明白为什么会有'\x14',它来自'\24',这是整数20或十六进制0x14的八进制表示。你知道吗

>>> '\24'
'\x14'

将此更正为您最初希望执行的操作:

>>> rr = re.compile(u"[\u24C2]+", re.DEBUG)
max_repeat 1 4294967295
  literal 9410

现在只有一个文本9410或unicode码点的整数表示将被匹配。你知道吗

相关问题 更多 >

    热门问题