我有这样的语句 String str = "123+567*789-444" ; String[] a = str.split("regex");
希望a出来的效果是数字和符号都分开,a应该是{{1,2,3},{+},{5,6,7},{*},{7,8,9},{-},{444}}请问各位大侠,这个正则该怎么写啊???????
希望a出来的效果是数字和符号都分开,a应该是{{1,2,3},{+},{5,6,7},{*},{7,8,9},{-},{444}}请问各位大侠,这个正则该怎么写啊???????
2,对于查找的问题,详细说明寻找字符串的特征是什么,这些字符串的边界是什么,或者说有些什么规律;
3,对于替换的问题,详细说明原串是什么,替换后是什么,有些什么规律;
4,对于验证的问题,详细说明验证的格式是什么;
5,举两三个覆盖范围尽可能广的示例。需要注意的是,所回复的正则表达式仅仅能满足所提供的示例!问题说得不清不楚的话,我在 CSDN 吃过苦头,提出一个问题,帮他回复好能用了,之后他又增加一点新的要求,然后我又给他回复了,反反复复有很多次,半天时间全耗在那帖子之上了。所以从那以后如果题目我都看不懂、没有例子、也不知道要做什么的正则表达式问题一律不回复,哪怕是 0 分还是 400 分的帖子。
我的这个问题实质上就是对一个算术表达式中的操作符和操作数进行分离,操作符包括(,),+,-,×,/,操作数就是整数。运算符两边不考虑会出现空格的情况,操作数也不考虑负整数的情况。
例子:3+18×5/2 可利用split函数分割为 3,+,18,×,5,/,2
12×(3+12)-9 分割为 12,×,(,3,+,12,),-,9,请问,这样的正则表达式如何写?
public static void main(String args[]) throws Exception{
String str="12×(-3+12)-9/-2";
System.out.println(Arrays.toString(str.split("(?=[\\+\\-×/()])|((?<=[\\+\\-×/()])(?<![\\+\\-×/(]{2}))")));
}
}试试这个?有问题再调.这个可以容许你再负号。F:\java>java Test
[12, ×, (, -3, +, 12, ), -, 9, /, -2]