澄清此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