2010-10-01 59 views
4

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

我敢肯定,解決的辦法是愚蠢的,但沒有辦法找到。

回答

7

試試這個:

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

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

+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

1

您刪除任意數量的{的,因爲你的{*代替.*

應該\\$\\{.*\\}

,確實讓大括號之間的任何東西,你想這是唯一的阿爾法或者其他的東西?

,這將是\\$\\{[a-zA-Z]*\\}

0

另一種解決方案將是\\$\\{[^\\}]*\\}(任何字符不同於})