Я хочу удалить $ {что-нибудь} или $ {кое-что} из строки, но я не нахожу регулярное выражение.
Мой действительный код
String url = http://test.com/index.jsp?profil=all&value=${value} String regex = "\\$\\{*\\}"; url = url .replaceAll(regex, ""); // expect http://test.com/index.jsp?profil=all&value= //but it is http://test.com/index.jsp?profil=all&value=${value}
Я уверен, что решение глупо, но найти его невозможно.
Попробуйте это:
"\\$\\{.*?\\}"
.*? соответствует самой короткой из возможных строк, за которой следует }.
.*?
}
вы удаляете любое количество {, потому что у вас есть {* вместо .*
{
{*
.*
должно быть \\$\\{.*\\}
\\$\\{.*\\}
, которое действительно разрешит что-либо междуфигурные скобки, вы хотите, чтобы это было только альфа или что-то еще?
это было бы \\$\\{[a-zA-Z]*\\}
\\$\\{[a-zA-Z]*\\}
Другое решение будет \\$\\{[^\\}]*\\} (любой символ, отличный от})
\\$\\{[^\\}]*\\}