1

看起来很简单,但我找不到解决方案。我需要从像{value1}{value2}.....{valueN}. 我试图将模式创建为:(\\{(.*)\\})*(\\{(.*?)\\})*。但在这两种情况下,我只得到一个值:边缘括号或最后一个值之间的所有内容。我需要(.*)用有意义的东西替换anything except }{
提前感谢您的帮助。

4

4 回答 4

2

I would go for:

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

I don't like matching stuff with regex when you can go for something less confusing. Especially for the next dev who's gonna work on the same code.

于 2013-07-25T12:30:58.547 回答
1

试试这个字符串模式:

"\\{([^}]+)\\}"
于 2013-07-25T12:28:03.210 回答
0

您应该使用不贪婪的运算符 ( ?),以便.+尽可能少地捕获...

{.+?}
于 2013-07-25T12:22:56.393 回答
0

您应该使用更具体的匹配条件,比如可能不是正确的花括号而不是匹配所有...

{[^}]+}
于 2013-07-25T12:24:01.663 回答