正则或者其他方法去除指定的字符或串

题目描述

一段字符串,中多个重复出现的字符,要去掉,但是不知道相关的正则方法

相关代码

    String ss="SUM(TA0047/(TA0012+TA0023+SUM(TA0034+TA0045)))";

你期待的结果是什么?实际看到的错误信息又是什么?

结果就是 TA0047/(TA0012+TA0023+TA0034+TA0045)

问题描述

去掉 SUM() java的api replace 或者replaceAll 只能去掉SUM 但是括号的位置是不固定的。目前没想到怎么做。 解析成char 之后循环查询标记位置,但是思路不清晰。求助


GCT1015
浏览 693回答 1
1回答

慕勒3428872

因你没有说明 js 字符串的具体用法,这里假设你是用 java 生成动态的 javascript 脚本(字符串),然后用 node.js 之类的 javascript 引擎执行。首先我不赞成替换/删除字符串SUM() 的处理方式,因它需要考虑太多因素,基本上你要做一个 javascript 语法分析器才能正确实现,比如以下情况let r = SUM(a+b)/c;const CHECKSUM = 100;let log = "SUM(1+2)?";若只需要考虑算术运算(加减乘除),即当 SUM(a) 结果等于 (a) 时,可直接删除 SUM,保留括号。若考虑完整的 javascript 运行环境,可植入一段 SUM 定义函数,如function SUM(n) {  return n; }这样原字符串便不需要修改。Java 示例String injectScript = "function SUM(n) {return n;};";String ss="SUM(TA0047/(TA0012+TA0023+SUM(TA0034+TA0045)))";jsExec(injectScript + ss);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript