0

我正在为 python 中的 2to3 工具编写一个修复程序。

在我的模式字符串中,我有一个部分我想匹配一个空字符串作为参数,或者一个空的 unicode 字符串。我的模式的相关部分如下所示:

(args='""' | args='u""')

我的问题是第二个选项永远不匹配。即使是单独的,也不会匹配。但是,如果我简单地说 args=any 然后输出 args,我可以捕捉到 args 完全等于第二个选项的情况。

是否发生了一些奇怪的 unicode 处理事情?为什么第二个文字选项永远不匹配?

4

1 回答 1

1

因为 2to3 模式匹配旨在匹配标记而不是文字,所以无法直接执行此操作。

相反,您可以匹配 (args=STRING),然后确定转换函数中字符串参数的值并适当地处理它。

于 2010-04-09T16:55:28.227 回答