亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用于替換 JavaScript 模式的正則表達式

用于替換 JavaScript 模式的正則表達式

BIG陽 2022-12-28 10:01:50
我有大量帶有這樣表達式的 html 文件:eval('enterData.style.pixelTop=' + y);我想消除 eval 表達式并只執行代碼,換句話說,將其更改為:enterData.style.pixelTop =  y;誰能幫我解決這個問題。我正在努力尋找解決方案,但我只知道如何通過以下方式消除評估:Regex: eval\('(.*)'\) Replace: $1我將 java 用于正則表達式。
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

我對 Javascript 一無所知,但這就是我所看到的。

您需要轉義您的'角色并將它們放在不匹配的組中:?

Regex: eval\(((?:\')(.*)(?:\').*)\)
Replace: $1

查看regex101以制作正則表達式的原型。


查看完整回答
反對 回復 2022-12-28
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

我猜我們可以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.log(result);

演示

正則表達式

如果不需要此表達式,可以在regex101.com中對其進行修改/更改。

正則表達式電路

jex.im可視化正則表達式:

http://img1.sycdn.imooc.com//63aba3be00014bba14800185.jpg

查看完整回答
反對 回復 2022-12-28
  • 2 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號