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条)

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突