我想从字符串中删除$ {anything}或$ {somethingelse},但我找不到正则表达式。
我的实际代码
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}
我确定解决方案很愚蠢,但无法找到。
答案 0 :(得分:7)
试试这个:
"\\$\\{.*?\\}"
.*?
匹配}
后跟的最短字符串。
答案 1 :(得分:1)
您删除了任意数量的{
,因为您有{*
而不是.*
应为\\$\\{.*\\}
确实允许括号之间的任何内容,你想要它只是alpha还是什么?
将是\\$\\{[a-zA-Z]*\\}
答案 2 :(得分:0)
另一个解决方案是\\$\\{[^\\}]*\\}
(任何不同于}的字符)