2 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
我猜我們可以vars使用如下表達(dá)式分別捕獲所需的兩個:
.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+
我們當(dāng)然可以簡化這個表達(dá)式,但我不確定我們可能擁有的其他輸入。
爪哇
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.log(result);
演示
正則表達(dá)式
如果不需要此表達(dá)式,可以在regex101.com中對其進(jìn)行修改/更改。
正則表達(dá)式電路
jex.im可視化正則表達(dá)式:
添加回答
舉報