本帖最后由 yuantian 于 2021-8-10 22:00 编辑
==========================================
2021-08-10 21:57:08更新:
感谢Q群老师:风过影相随 @zghwelcome
完美的解决了我的这个问题
正则表达式更改为:
(?i)(?<!a)(\=|\:|\()(\s*?\W+?\/*?)(\/*?)(static|assets|img)(\/)
$Value1 = 'return o.p+"static/js/"+({}[e]||e)+' & _
'{var a="static/css/"+({}[e]{tag:"sc' & _
'ript",src:"assets/js/app.min.js"}){img_src: ' & _
"'assets/images/help-icon.svg'" & _
'}{X.a.get("/static/config.json")"'
$Value2 = StringRegExpReplace($Value1,'(?i)(?<!a)(\=|\:|\()(\s*?\W+?\/*?)(\/*?)(static|assets|img)(\/)','$1$2' & "[KeyWords]" & '$4$5')
MsgBox(0,"",$Value2)
最后效果:
再次表示感谢。
以下为原提问贴:
=========================================
各位老师好,请教一个正则表达式。自己琢磨了好久,实现了大部分功能,但是还是有一点点问题无法解决故发上来请教一下大家(思路比较乱,请各位老师谅解)
上问题:
1.已知有一大堆字符串(下方为精简后的):
return o.p+"static/js/"+({}[e]||e)+{var a="static/css/"+({}[e]{tag:"script",src:"assets/js/app.min.js"}){img_src: 'img/images/help-icon.svg'}{X.a.get("/static/config.json")
2.我如果想要实现将[static|assets|img]这三段字符串前面再增加某些字符串的话,
想到了利用到了正则表达式替换(StringRegExpReplace)的功能,
但是一直都没能完全满足我实际的需求,故向各位老师寻求帮助。
我自己尝试的表达式为:
(?!a)(\=|\:|\()(\s*?\W+?\/*?)(\/*?)(static|assets|img)(\/)
我主要需求是:(需要同时满足以下条件)
1)匹配开头不是a的内容(这里失败了,并未实现此项,但是不影响下面的匹配)
2)字符串前面前段匹配 [ = | : | ( ] ,(匹配等号、冒号、左括号)
3)字符串前面中段匹配 [ " | ' ] ,(匹配双引号或单引号,其中可能会有空格,所以我用了 "(\s*?\W+?\/*?)" )
4)匹配字符串[ static | assets | img ] (仅匹配这三个字符串)
5)匹配字符串后为 [ / ],(匹配字符串后为 /斜杠的)
注:有的时候字符串前可能会有单独的[/斜杠],我为了防止影响,增加了单独的 "(\/*?)",用来去掉影响。
3.最后,上代码:
$Value1 = 'return o.p+"static/js/"+({}[e]||e)+' & _
'{var a="static/css/"+({}[e]{tag:"sc' & _
'ript",src:"assets/js/app.min.js"}){img_src: ' & _
"'assets/images/help-icon.svg'" & _
'}{X.a.get("/static/config.json")"'
$Value2 = StringRegExpReplace($Value1,'(?!a)(\=|\:|\()(\s*?\W+?\/*?)(\/*?)(static|assets|img)(\/)','$1$2' & "[KeyWords]" & '$4$5')
MsgBox(0,"",$Value2)
麻烦各位老师看一下,如果有解出来的,请进一步讲解一下为什么这么写,谢谢!
==========================================
PS:可能我还是没太表述清楚
我想实现的是:
o.p+"static/js ====> o.p+"static/js (双引号前面不是等号、冒号和左括号,不插入关键字)
var a="static/css ====> var a="static/css (等号前面包含字母a,不插入关键字)
src:"assets/ ====> src:"[KeyWords]assets/ (双引号后面插入[KeyWords])
img_src: 'assets ====> img_src: '[KeyWords]assets (单引号后面插入[KeyWords])
get("/static/config ====> get("[KeyWords]static/config (双引号后,删掉/,再插入[KeyWords])
=========================================
|