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

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

问题描述:

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

它的工作原理!谢谢 ! – Antoine 2010-10-01 16:21:34

+0

@Antoine Meausoone然后标记答案为接受(在投票柜台下面打勾) – Bozho 2010-10-01 16:25:12

+0

是的,我不得不等待15分钟,thx又保存了我的周末:) – Antoine 2010-10-01 16:30:07

您删除任意数量的{的,因为你的{*代替.*

应该\\$\\{.*\\}

,确实让大括号之间的任何东西,你想这是唯一的阿尔法或者其他的东西?

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

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