Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
澄清此Python正则表达式和调试信息_Python_Regex_Python 2.7 - Fatal编程技术网

澄清此Python正则表达式和调试信息

澄清此Python正则表达式和调试信息,python,regex,python-2.7,Python,Regex,Python 2.7,由于错误,我在上面的正则表达式中输入了\24C2,而不是\u24C2。调试时,我试图理解调试输出。在上面的输出中,literal20、literal67和literal50是什么意思?它们来自何处?文本来自指定正则表达式模式中指定范围内字符的顺序表示(或unicode字符串的unicode代码点的整数值) >>> rr = re.compile(u"[\24C2]+", re.DEBUG) max_repeat 1 4294967295 in literal 20

由于错误,我在上面的正则表达式中输入了
\24C2
,而不是
\u24C2
。调试时,我试图理解调试输出。在上面的输出中,
literal20
literal67
literal50
是什么意思?它们来自何处?

文本来自指定正则表达式模式中指定范围内字符的顺序表示(或unicode字符串的unicode代码点的整数值)

>>> rr = re.compile(u"[\24C2]+", re.DEBUG)
max_repeat 1 4294967295
  in
    literal 20
    literal 67
    literal 50
如果您不明白为什么会有一个
'\x14'
,它来自
'\24'
,它是整数
20
或十六进制
0x14
的八进制表示

>>> chr(20)
'\x14'
>>> chr(67)
'C'
>>> chr(50)
'2'
将此更正为您最初所说的您想做的:

>>> '\24'
'\x14'

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

您可能需要澄清第一个,以便清楚地知道这个数字是如何产生的。@IgnacioVazquez Abrams Hah,您在完成编辑时击败了我。
>>> rr = re.compile(u"[\u24C2]+", re.DEBUG)
max_repeat 1 4294967295
  literal 9410