【已放弃】有老哥懂notepad++里的正则表达式吗?
本帖最后由 jcyxxx 于 2022-8-16 20:34 编辑感谢老哥们的解答,我放弃了
想测试点东西,具体地说是修改游戏文件
比如说我想把所有的 number="x" 替换成 number="2x" 其中x为自然数,就是把这里的数字变成两倍
正则表达能做到吗?
你可以参考这个网站
https://regexone.com/ 两倍只用regex做不到 写一段python吧 本帖最后由 macos 于 2022-8-16 20:28 编辑
哦不对,原来你要计算值,不能 单纯正则做不到吧,要是你的游戏文件支持 2*x这种表达式的话倒是可以,如果是2*x计算后的结果那就要写脚本了 需要配合具备计算功能的函数
$ echo 'number = 123' | awk 'match($0, /number\s*=\s*(.*)/, result){ print 2 * result; exit }'
246
laotoutou 发表于 2022-8-16 20:23
你可以参考这个网站
https://regexone.com/
好网站,学习一下 不能,正则是匹配字符串的,它的匹配功能最终不会存储下变量。你要简单修改乘10加0好弄,乘2不行 游戏文件是xml或json类的数据么? 直接python加载后做运算然后写回去可能是最方便的。
—— 来自 S1Fun 这种理所当然用awk阿 如果需要替换的具体的值不多,其实问题也不大,可以穷举嘛。
如果具体的值不少,可以正则搜索搭配excel解决问题。
awk是Linux程序,你要楼主再折腾wslCygwin 那不是更麻烦 本帖最后由 V5Style 于 2022-8-16 22:58 编辑
PowerShell的:
'abcnumber="123"abc' -replace "(?<=number\s*=\s*[`"']?)(\d)+", { ($_.Value)*2 }
读取内容可以用Get-Content或cat。如果是JSON可以用ConvertFrom-Json,是XML可以用做转换。
页:
[1]