用于替换 JavaScript 模式的正则表达式
RegEx for replacing a JavaScript pattern
我有大量 html 文件,其表达式如下:
eval('enterData.style.pixelTop=' + y);
我想删除 eval 表达式并只执行代码,换句话说,将其更改为:
enterData.style.pixelTop = y;
谁能帮我解决这个问题。我正在努力寻找解决方案,但我只知道如何通过以下方式消除评估:
Regex: eval\('(.*)'\)
Replace:
我正在使用 java 作为正则表达式。
我猜我们可以使用如下表达式分别捕获所需的 vars
:
.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+
我们当然可以简化这个表达式,但我不确定我们可能有的其他输入。
Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = ".+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+";
final String string = "eval('enterData.style.pixelTop=' + y);\n"
+ "eval('enterData.style.pixelTop=' + x);";
final String subst = ";";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println(result);
测试
const regex = /.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+/gm;
const str = `eval('enterData.style.pixelTop=' + y);
eval('enterData.style.pixelTop=' + x);`;
const subst = `;`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
Demo
正则表达式
如果不需要这个表达式,它可以是 modified/changed in regex101.com。
正则表达式电路
jex.im 可视化正则表达式:
我对Javascript一无所知,但这就是我所看到的。
您需要转义 '
个字符并使用 :?
将它们放入 non-matching 组
Regex: eval\(((?:\')(.*)(?:\').*)\)
Replace:
查看 regex101 以了解原型正则表达式。
我有大量 html 文件,其表达式如下:
eval('enterData.style.pixelTop=' + y);
我想删除 eval 表达式并只执行代码,换句话说,将其更改为:
enterData.style.pixelTop = y;
谁能帮我解决这个问题。我正在努力寻找解决方案,但我只知道如何通过以下方式消除评估:
Regex: eval\('(.*)'\)
Replace:
我正在使用 java 作为正则表达式。
我猜我们可以使用如下表达式分别捕获所需的 vars
:
.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+
我们当然可以简化这个表达式,但我不确定我们可能有的其他输入。
Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = ".+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+";
final String string = "eval('enterData.style.pixelTop=' + y);\n"
+ "eval('enterData.style.pixelTop=' + x);";
final String subst = ";";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println(result);
测试
const regex = /.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+/gm;
const str = `eval('enterData.style.pixelTop=' + y);
eval('enterData.style.pixelTop=' + x);`;
const subst = `;`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
Demo
正则表达式
如果不需要这个表达式,它可以是 modified/changed in regex101.com。
正则表达式电路
jex.im 可视化正则表达式:
我对Javascript一无所知,但这就是我所看到的。
您需要转义 '
个字符并使用 :?
Regex: eval\(((?:\')(.*)(?:\').*)\)
Replace:
查看 regex101 以了解原型正则表达式。