Вы можете использовать следующее регулярное выражение: ([a-zA-Z_](?:[a-zA-Z0-9_])*)\s*=\s*(\d+|(\+\+|--|\*\*|//)?((?:[a-zA-Z_](?:[a-zA-Z0-9_])*))|(?:[a-zA-Z_](?:[a-zA-Z0-9_])*)(\+\+|--))$
Он длинный из-за своей последней части, поэтому он будет совпадать и с k = x++
.
Одна проблема заключалась в том, что вы забыли использовать некоторые скобки. Используйте их везде, таким образом, вы можете быть уверены, что ничего не произошло непреднамеренно.
[\d]*
ничего не соответствует, [\d]+
- это то, что вы будете использовать.
Примечание: Имя переменной может содержать символ _
.
См. Пояснение к regex101 ...