0

我正在爲python中的2to3工具編寫修復程序。python 2to3修復程序的PATTERN字符串中的文字參數問題

在我的模式字符串中,我有一個部分,我想匹配一個空字符串作爲參數,或者一個空的unicode字符串。我的模式的相關塊的樣子:

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

我的問題是第二個選擇永遠不匹配。即使它獨自一人,它也不會匹配。然而,如果我簡單地說args = any然後輸出參數,我可以捕捉args與第二個選項完全相同的情況。

是否有一些奇怪的unicode處理事情正在進行?爲什麼第二個字面選項不會匹配?

回答

1

由於2to3模式匹配的目的是匹配令牌而不是文字,因此無法直接執行此操作。

相反,您可以匹配(args = STRING),然後確定轉換函數內部字符串參數的值並進行適當處理。