我的表达方式如下:
-3-5
or -3--5
or 3-5
or 3-+5
or -3-+5
我需要在数字之间加上“ - ”符号,即在我需要的上述情况下, -3和5,-3和-5,3和5,3和+ 5,-3和+5。 我试过用这个:
String s[] = str.split("[+-]?\\d+\\-[+-]?\\d+");
int len = s.length;
for(int i=0;i<len;i++)System.out.println(s[i]);
但它不起作用
答案 0 :(得分:8)
尝试使用此正则表达式进行拆分:
str.split("\\b-")
单词边界\b
应仅在数字之前或之后匹配,以便与-
结合使用,只有以下-
作为范围指示符匹配:
-3-5, -3--5 , 3-5,3-+5,-3-+5
^ ^ ^ ^ ^
答案 1 :(得分:1)
转发至forums.sun.com。
这不是RE本身的工作。您需要扫描程序来返回运算符和数字,以及表达式解析器。考虑-3 ------- 5。
答案 2 :(得分:0)
你的表情很好。拆分不是选择,因为您尝试将表达式与字符串匹配 - 不使用它来拆分字符串:
以下是一些可以使用表达式获取所需内容的代码:
String a = "-90--80";
Pattern x = Pattern.compile("([+-]?\\d+)\\-([+-]?\\d+)");
Matcher m = x.matcher(a);
if(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}