У меня есть тонны html-файлов с таким выражением:
eval('enterData.style.pixelTop=' + y);
и я хочу исключить выражение eval и просто выполнить код, другими словами, изменить его на:
enterData.style.pixelTop = y;
Может ли кто-нибудь помочь мне с этим. Я ломаю голову, пытаясь найти решение, но я знаю только, как устранить eval с помощью:
Regex: eval\('(.*)'\)
Replace: $1
Я использую java для регулярного выражения.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я предполагаю, что мы могли бы зафиксировать оба желаемых vars по отдельности с помощью такого выражения, как:
.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+
Мы, конечно, можем упростить это выражение, но я не был уверен в других исходных данных, которые мы могли бы иметь.
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 = "$1$2;";
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 = `$1$2;`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.info(result);Если это выражение не нужно, его можно модифицировать/изменить в regex101.com.
jex.im визуализирует регулярные выражения:
Я ничего не знаю о Javascript, но это то, что я вижу.
Вам нужно сбежать от ваших ' символов и поместить их в несоответствующие группы, используя :?
Regex: eval\(((?:\')(.*)(?:\').*)\)
Replace: $1
Ознакомьтесь с регулярное выражение101 для создания прототипов регулярных выражений.