Great6661 2021-07-07 10:44 采纳率: 100%
浏览 77
已采纳

java 正则表达式解析公式问题

现在需要使用正则表达式,对计算公式进行解析。解析出每一项的运算单元。

计算公式:
lineData(1,"debit”)+adjustHis("801","1001","debit","BQFSS","农行",0,-1,0,-1)

现在使用的正则表达式为:
(\-?[^\+\-\*/]+)([\+\-])([^\+\-\*/]+)

如果adjustHis 函数中的-1参数为正数,如1,可以正常解析出
lineData(1,"debit”) 和 adjustHis("801","1001","debit","BQFSS","农行",0,1,0,1)

可是,当参数为-1时

解析出的计算单元为:
lineData(1,"debit")
adjustHis("801","1001","debit","BQFSS","农行",0,
1,0,
1)

请教,怎么改进这个正则表达式,忽略掉参数中的“-”(减号)。。

  • 写回答

3条回答 默认 最新

  • CSDN专家-文盲老顾 2021-07-07 10:59
    关注
    /(\-?[^\+\-\*\/]+)([\+\-])((?:[^\+\-\*/]|[-](?=[0-9]))+)/gi.exec('lineData(1,"debit”)+adjustHis("801","1001","debit","BQFSS","农行",0,-1,0,-1)')
    

    在你的正则的基础上调整了一下,当-号后边跟着数字时,这个-应该可以被表达式匹配

    [-](?=[0-9]) 部分
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因