1

それは本当に簡単に思えますが、解決策が見つかりません。のような文字列から値を取得する必要があります{value1}{value2}.....{valueN}。パターンを次のように作成しようとしました:(\\{(.*)\\})*または(\\{(.*?)\\})*. しかし、どちらの場合も値は 1 つしか得られません: 辺括弧内のすべてまたは最後の値です。(.*)を意味のあるものに置き換える必要がありanything except }{ます。
助けてくれてありがとう。

4

4 に答える 4

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

混乱の少ないものを選ぶことができるのに、正規表現と一致させるのは好きではありません。特に、同じコードに取り組む次の開発者にとっては。

于 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 に答える