找回密码
 立即注册
搜索
查看: 1874|回复: 12

[软件] 【已放弃】有老哥懂notepad++里的正则表达式吗?

[复制链接]
     
发表于 2022-8-16 20:21 | 显示全部楼层 |阅读模式
本帖最后由 jcyxxx 于 2022-8-16 20:34 编辑

感谢老哥们的解答,我放弃了

想测试点东西,具体地说是修改游戏文件

比如说我想把所有的 number="x" 替换成 number="2x" 其中x为自然数,就是把这里的数字变成两倍

正则表达能做到吗?


回复

使用道具 举报

     
发表于 2022-8-16 20:23 | 显示全部楼层
你可以参考这个网站
https://regexone.com/
回复

使用道具 举报

发表于 2022-8-16 20:24 | 显示全部楼层
两倍只用regex做不到 写一段python吧
回复

使用道具 举报

发表于 2022-8-16 20:27 | 显示全部楼层
本帖最后由 macos 于 2022-8-16 20:28 编辑

哦不对,原来你要计算值,不能
回复

使用道具 举报

     
发表于 2022-8-16 20:28 | 显示全部楼层
单纯正则做不到吧,要是你的游戏文件支持 2*x这种表达式的话倒是可以,如果是2*x计算后的结果那就要写脚本了
回复

使用道具 举报

     
发表于 2022-8-16 20:32 | 显示全部楼层
需要配合具备计算功能的函数
  1. $ echo 'number = 123' | awk 'match($0, /number\s*=\s*(.*)/, result){ print 2 * result[1]; exit }'
  2. 246
复制代码

回复

使用道具 举报

     
 楼主| 发表于 2022-8-16 20:32 | 显示全部楼层
laotoutou 发表于 2022-8-16 20:23
你可以参考这个网站
https://regexone.com/

好网站,学习一下
回复

使用道具 举报

     
发表于 2022-8-16 20:36 | 显示全部楼层
不能,正则是匹配字符串的,它的匹配功能最终不会存储下变量。你要简单修改乘10加0好弄,乘2不行
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-8-16 22:21 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-8-16 22:29 | 显示全部楼层
游戏文件是xml或json类的数据么? 直接python加载后做运算然后写回去可能是最方便的。

—— 来自 S1Fun
回复

使用道具 举报

发表于 2022-8-16 22:44 | 显示全部楼层
这种理所当然用awk阿
回复

使用道具 举报

     
发表于 2022-8-16 22:55 | 显示全部楼层
如果需要替换的具体的值不多,其实问题也不大,可以穷举嘛。
如果具体的值不少,可以正则搜索搭配excel解决问题。
awk是Linux程序,你要楼主再折腾wsl  Cygwin 那不是更麻烦
回复

使用道具 举报

     
发表于 2022-8-16 22:57 | 显示全部楼层
本帖最后由 V5Style 于 2022-8-16 22:58 编辑

PowerShell的:
  1. 'abcnumber="123"abc' -replace "(?<=number\s*=\s*[`"']?)(\d)+", { ([int]$_.Value)*2 }
复制代码

读取内容可以用Get-Content或cat。如果是JSON可以用ConvertFrom-Json,是XML可以用[xml]做转换。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-22 11:19 , Processed in 0.051692 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表