从java中的字符串中删除“$ {anything}”

时间:2010-10-01 16:13:53

标签: java regex

我想从字符串中删除$ {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}

我确定解决方案很愚蠢,但无法找到。

3 个答案:

答案 0 :(得分:7)

试试这个:

"\\$\\{.*?\\}"

.*?匹配}后跟的最短字符串。

答案 1 :(得分:1)

您删除了任意数量的{,因为您有{*而不是.*

应为\\$\\{.*\\}

确实允许括号之间的任何内容,你想要它只是alpha还是什么?

将是\\$\\{[a-zA-Z]*\\}

答案 2 :(得分:0)

另一个解决方案是\\$\\{[^\\}]*\\}(任何不同于}的字符)