我尝试了以下内容,预计会有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}]
还有其他办法吗?请帮助。
答案 0 :(得分:1)
假设只有1级括号{}
,并且括号可以正确打开和关闭,这是可能的。将此正则表达式与split
函数:
-(?![^{}]*})
As String literal:
"-(?![^{}]*})"
正则表达式检查-
当前不在括号内,检查我们是否可以从字符串的当前位置找到一个右括号}
,因为它们之间的字符没有左括号{
或右括号}
。
答案 1 :(得分:1)
您可以在拆分中使用否定前瞻来实现此目的。基本上你检查分隔符-
后面是否有数字和一个右括号。
以下是我最终的结果:
-(?!\d+\})