正则化如何用

ydb7459022 2011-09-01 05:49:46
我想用于计算下面的结果,可以用正则化公式吗?


如何用:

计算结果:
D=a()b()c()d;
a,b,c,d是四个整数,()内可以是+,-,*,/,符号中的一个,

有大侠会的吗?教教小弟,不胜感激!!!(java)
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lz524 2011-09-02
  • 打赏
  • 举报
回复
表示不懂,mark,学习
ydb7459022 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qybao 的回复:]

LZ是判断字符串还是要计算结果?
如果是用正则判断字符串的话,用2L的就可以了
或者,如果计算数个数不定,还可以这样
regex="\\d+([(][+-*/][)]\\d+)*"; //这样可以只判断一个数也符合,即a也可以
或则
regex="\\d+([(][+-*/][)]\\d+)*?[(][+-*/][)]\\d+"; 这样至少出现a(+-*/)b
[/Quote]


我是想计算用的,四个数,但是之间的符号不确定,加减乘除
TKD03072010 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qybao 的回复:]

hvae a try

Java code
import javax.script.*;

class Test {
public static void main(String[] args) {
ScriptEngine se = ScriptEngineManager.getEngineByName("JavaScript");
String ……
[/Quote]
这个挺好的
省去了很多复杂的代码
viewhao 2011-09-01
  • 打赏
  • 举报
回复
不考虑括号:
String pat = "\\d + [+-*/]\\d*";
至于考虑除法运算是否非法,还无法正则匹配
qybao 2011-09-01
  • 打赏
  • 举报
回复
LZ是判断字符串还是要计算结果?
如果是用正则判断字符串的话,用2L的就可以了
或者,如果计算数个数不定,还可以这样
regex="\\d+([(][+-*/][)]\\d+)*"; //这样可以只判断一个数也符合,即a也可以
或则
regex="\\d+([(][+-*/][)]\\d+)*?[(][+-*/][)]\\d+"; 这样至少出现a(+-*/)b
thegodofwar 2011-09-01
  • 打赏
  • 举报
回复
括号不需要匹配的话就是:

regex="\\d+[+-*/]\\d+[+-*/]\\d+[+-*/]\\d+"
thegodofwar 2011-09-01
  • 打赏
  • 举报
回复
用str.matches(regex)试试

regex="\\d+[(][+-*/][)]\\d+[(][+-*/][)]\\d+[(][+-*/][)]\\d+"
qybao 2011-09-01
  • 打赏
  • 举报
回复
hvae a try

import javax.script.*;

class Test {
public static void main(String[] args) {
ScriptEngine se = ScriptEngineManager.getEngineByName("JavaScript");
String ex = "1+2*3-4/5";
Object value = se.eval(ex);
System.out.println(value);
}
}
完美灬缺陷 2011-09-01
  • 打赏
  • 举报
回复
不懂。帮顶下。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧