我正在为python中的2to3工具编写修复程序。
在我的模式字符串中,我有一个部分,我想将空字符串作为参数或空的unicode字符串匹配。我的模式的相关块看起来像:
(args='""' | args='u""')
我的问题是第二个选项从不匹配。即使它是孤零零的,它也不会匹配。但是,如果我只是说args = any然后输出args,我可以捕获args完全等于第二个选项的情况。
是否有一些奇怪的unicode处理事情正在进行?为什么第二个文字选项不匹配?
答案 0 :(得分:1)
因为2to3模式匹配旨在匹配令牌而不是文字,所以无法直接执行此操作。
相反,你可以匹配(args = STRING)然后确定转换函数中字符串参数的值并适当地处理它。