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 回答