1

次のことを試しましたが、o/p が期待されます。

String valueIn = test-3-4-HH{3-4}-FF{38-99}
String[] valueInSplit = valueIn.split("-");

o/p array = [test, 3, 4, HH{3, 4}, FF{38, 99}]

正規表現で「{」と「}」の間の「-」を回避するパターンを作成することは可能ですか?そのため、予想されるo/pは

o/p array = [test, 3, 4, HH{3-4}, FF{38-99}]

それを行う他の方法はありますか?親切に助けてください。

4

2 に答える 2

1

これは、ブラケットのレベルが 1 つしかなく{}、ブラケットが適切に開閉されているという前提で可能です。split関数でこの正規表現を使用します。

-(?![^{}]*})

文字列リテラルとして:

"-(?![^{}]*})"

正規表現は、文字列の現在の位置から-閉じ括弧を見つけることができるかどうかをチェックすることによって、 が現在括弧内にないことを確認します。その間の文字には開き括弧または閉じ括弧}がありません。{}

于 2013-02-18T12:44:39.630 に答える
1

これは、分割で否定先読みを使用して実現できます。基本的に、区切り記号の後に数字と閉じ括弧があるかどうかを確認します-

これが私が最終的に得たものです:

-(?!\d+\})
于 2013-02-18T12:48:40.813 に答える