У меня есть переменная в виде {varName} или {varName, "defaultValue"}, и я хочу регулярное выражение, которое будет ей соответствовать. varName является только буквенно-цифровым и "_" (\ w +), и значением по умолчанию может быть что угодно, кроме комбинации "}, которая обозначает конец переменной. Пробел не имеет значения между фигурными скобками, запятой, varName или defaultValue. До сих пор я придумал регулярное выражение
\{\s*(\w+)\s*(,\s*\"([^(\"\})]*)\"\s*)?\}
Проблема в том, что совпадение заканчивается первым «ИЛИ», а не комбинацией, то есть {привет, «мир»} действительно совпадает, но {привет, «wor» ld »} или {привет,« wor} ld » }
Есть идеи, как это решить? Если это помогает, я пишу код с использованием Java.