我有这样的表达式:
-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]);但它不起作用
发布于 2010-08-01 16:37:35
尝试使用以下正则表达式拆分:
str.split("\\b-")字边界\b应仅在数字之前或之后匹配,以便与-组合时,仅匹配作为范围指示器的以下-:
-3-5, -3--5 , 3-5,3-+5,-3-+5
^ ^ ^ ^ ^发布于 2010-08-01 21:01:57
已交叉发布到forums.sun.com。
这不是REs自己的工作。您需要一个扫描器来返回运算符和数字,以及一个表达式解析器。考虑-3-5.
发布于 2010-08-03 11:31:30
你的表情很好。不过,拆分并不是最佳选择,因为您要尝试将表达式与字符串匹配,而不是使用它来拆分字符串:
下面是一些代码,它们可以利用您的表达式来获得您想要的内容:
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));
}https://stackoverflow.com/questions/3381319
复制相似问题