代码之家  ›  专栏  ›  技术社区  ›  Antoine

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

  •  4
  • Antoine  · 技术社区  · 16 年前

    我想从字符串中删除${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 回复  |  直到 16 年前
        1
  •  7
  •   tangens    16 年前

    试试这个:

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

    .*? } .

        2
  •  1
  •   John Gardner    16 年前

    { 是的,因为你有 {* .*

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

    这确实会允许括号之间的任何东西,你想让它只是alpha还是别的什么?

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

        3
  •  0
  •   ryotakatsuki    16 年前

    另一个解决办法是 \\$\\{[^\\}]*\\} (与}不同的任何字符)