我已经尝试了以下方法,预计会出现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}]还有没有别的办法呢。请帮帮忙。
发布于 2013-02-18 20:44:40
这是可能的,假设只有1级括号{},并且括号是正确打开和关闭的。将此正则表达式与split函数一起使用:
-(?![^{}]*})作为字符串文字:
"-(?![^{}]*})"正则表达式检查-当前是否不在括号内,方法是检查是否可以从字符串的当前位置找到结束括号},因为在字符串之间的字符没有左方括号{或右方括号}。
发布于 2013-02-18 20:48:41
你可以在你的split中使用一个负向前视来实现这一点。基本上,您需要检查分隔符-后面是否有数字和右括号。
这是我最终得到的结论:
-(?!\d+\})https://stackoverflow.com/questions/14936118
复制相似问题