看起来很简单,但我无法找到解决方案。我需要从像{value1}{value2}.....{valueN}
这样的字符串中获取值。
我尝试将模式创建为:(\\{(.*)\\})*
或(\\{(.*?)\\})*
。但在这两种情况下,我只得到一个值:边括号之间的所有值或最后一个值。我需要将(.*)
替换为含义为anything except }{
的内容
提前感谢您的帮助。
答案 0 :(得分:2)
我会选择:
String str = "{value1}{value2}...{valueN}";
str = str.subString(1,str.length-2); // to crop the first and last bracket
String[] results = str.split("\\}\\{"); // to get an array of results
我不喜欢匹配正则表达式的东西,当你可以去寻找一些不那么混乱的东西。特别是对于下一个将要使用相同代码的开发人员。
答案 1 :(得分:1)
试试这个字符串模式:
"\\{([^}]+)\\}"
答案 2 :(得分:0)
您应该使用ungreedy运算符(?
),以便尽可能少地捕获.+
...
{.+?}
答案 3 :(得分:0)
您应该使用更具体的匹配条件,例如可能是一个不正确的大括号而不是匹配所有......
{[^}]+}