Я использовал следующее регулярное выражение для поиска и сопоставления расширенных операторов присваивания:
AUG_ASSIGN = r'\+=|\-=|\*=|@=|/=|%=|/@=|&=|\|=|\^=|\<\<=|\>\>=|\*\*=|//='
У меня есть догадка, что можно исключить множественные вхождения '=', используя положительный прогноз илипозитивный взгляд.Итак, мой первый поиск был разделом грамматики в справочном руководстве по Python.Даже там '=' встречается несколько раз:
augop: "+=" | "-=" | "*=" | "/=" | "%=" | "**="
| ">>=" | "<<=" | "&=" | "^=" | "|="
Понятно, так как стандартный BNF не включает в себя позитивный прогноз или прогноз.
Далее я рассмотрел предложениязаданный самим SO, когда я набирал этот вопрос, и мои поиски не приблизили меня к месту предполагаемой встречи.Можно ли сжать выражение до чего-то вроде:
AUG_ASSIGN = <set of all binary operators>(?=\=)