2024-05-14 21:14:13 发布
网友
>>> rr = re.compile(u"[\24C2]+", re.DEBUG) max_repeat 1 4294967295 in literal 20 literal 67 literal 50
错误地,我在上面的正则表达式中输入了\24C2,而不是\u24C2。调试时,我试图理解调试输出。在上面的输出中,literal 20、literal 67和literal 50是什么意思?他们从哪里来?你知道吗
\24C2
\u24C2
literal 20
literal 67
literal 50
文本来自指定regex模式中指定范围内的字符(或unicode字符串的unicode码点的整数值)的顺序表示。你知道吗
>>> chr(20) '\x14' >>> chr(67) 'C' >>> chr(50) '2'
如果你不明白为什么会有'\x14',它来自'\24',这是整数20或十六进制0x14的八进制表示。你知道吗
'\x14'
'\24'
20
0x14
>>> '\24' '\x14'
将此更正为您最初希望执行的操作:
>>> rr = re.compile(u"[\u24C2]+", re.DEBUG) max_repeat 1 4294967295 literal 9410
现在只有一个文本9410或unicode码点的整数表示将被匹配。你知道吗
文本来自指定regex模式中指定范围内的字符(或unicode字符串的unicode码点的整数值)的顺序表示。你知道吗
如果你不明白为什么会有
'\x14'
,它来自'\24'
,这是整数20
或十六进制0x14
的八进制表示。你知道吗将此更正为您最初希望执行的操作:
现在只有一个文本9410或unicode码点的整数表示将被匹配。你知道吗
相关问题 更多 >
编程相关推荐