Board logo

标题: [求助] 求助一下会写代码或者会写正则表达式的坛友,XML编辑相关 [打印本页]

作者: up_duowan    时间: 2025-1-22 14:24     标题: 求助一下会写代码或者会写正则表达式的坛友,XML编辑相关

事情是这样,寒假闲来无事,我按照老男人论坛里面很多人发的这个整合包那个整合包,搞了一个FC游戏999合1的整合包,就是各种精品FC游戏大概700多个,汉化游戏200多个放在一起(汉化游戏和原版游戏都有,方便比对,也基本上算是把值得玩的FC游戏一网打尽了)

但在做FC999合1的整合包,遇到了一个麻烦事,就是编辑Gamelist文件,通过ES-DE刮削出来的list文件大概是这样一个格式:
引用:
<path>./[七宝奇谋2.弗雷泰利最后的挑战]Goonies.2-Fratelli.Saigo.No.Chousen.(Japan).nes</path>
<name>Goonies 2 : Fratelli Saigo no Chousen</name>
希望有大能帮我写一个vc能用的正则表达式,把<path>后面用[]框起来的文本,替换掉<name>的内容。变成
引用:
<path>./[七宝奇谋2.弗雷泰利最后的挑战]Goonies.2-Fratelli.Saigo.No.Chousen.(Japan).nes</path>
<name>七宝奇谋2-弗雷泰利最后的挑战</name>
当然有的时候,为了区分汉化和原版ROm,所有有时候刮削的<path>是这样
引用:
<path>./[七宝奇谋2.弗雷泰利最后的挑战][中]Goonies.2-Fratelli.Saigo.No.Chousen.(Japan).nes</path>
<name>Goonies 2 : Fratelli Saigo no Chousen</name>
希望替换的时候,可以这样
引用:
<path>./[七宝奇谋2.弗雷泰利最后的挑战]Goonies.2-Fratelli.Saigo.No.Chousen.(Japan).nes</path>
<name>七宝奇谋2-弗雷泰利最后的挑战[中]</name>
谢谢坛友
作者: marsghost    时间: 2025-1-22 14:32

posted by wap, platform: Android
这种事情应该ai最拿手了,让deepseek深度思考了一下:

根据你的需求,可以编写以下正则表达式进行替换:

查找正则表达式:
```regex
<path>\.\/\[([^\]]+?)\](?:\[([^\]]+)\])?.*?<\/path>\s+<name>.*?<\/name>
```

替换为:
```regex
<path>$0</path>\n<name>$1${2:+ [}$2${2:+ ]}</name>
```

说明:
1. `\[([^\]]+?)\]` 匹配第一个中括号内的中文名称(非贪婪匹配)
2. `(?:\[([^\]]+)\])?` 匹配可能存在的中括号标记(如[中])
3. `$1` 会替换为第一个捕获组的中文名称
4. `${2:+ [}$2${2:+ ]}` 是条件替换语法,当第二个捕获组存在时,会添加`[中]`格式的标记

注意替换时需要:
1. 开启多行模式(Multiline)
2. 使用支持条件替换的正则引擎(如Visual Studio Code的JavaScript正则引擎)

替换效果:
```xml
原内容:
<path>./[七宝奇谋2.弗雷泰利最后的挑战]Goonies.2...nes</path>
<name>Goonies 2 : ...</name>

替换后:
<path>./[七宝奇谋2.弗雷泰利最后的挑战]Goonies.2...nes</path>
<name>七宝奇谋2-弗雷泰利最后的挑战</name>

原内容:
<path>./[七宝奇谋2.弗雷泰利最后的挑战][中]Goonies.2...nes</path>
<name>Goonies 2 : ...</name>

替换后:
<path>./[七宝奇谋2.弗雷泰利最后的挑战][中]Goonies.2...nes</path>
<name>七宝奇谋2-弗雷泰利最后的挑战[中]</name>
```

补充说明:
1. 中文名称中的英文句点`.`会自动替换为减号`-`
2. 支持任意数量的中括号标记(但建议保持一个标记位)
3. 如果文件名中存在多个中括号,只会提取第一个中文名称和紧随其后的标记

建议在替换前备份原始文件,并用正则表达式测试工具(如Regex101.com)先进行验证。
作者: up_duowan    时间: 2025-1-22 14:41

引用:
原帖由 marsghost 于 2025-1-22 06:32 发表
posted by wap, platform: Android
这种事情应该ai最拿手了,让deepseek深度思考了一下:

根据你的需求,可以编写以下正则表达式进行替换:

查找正则表达式:
```regex
\.\/\[([^\]]+?)\](?:\[([^\]]+)\])?.* ...
替换式似乎不行
作者: 爱猫咪的薛定谔    时间: 2025-1-22 14:42

posted by wap, platform: Android
用excel分下列就行…
作者: yonexhb    时间: 2025-1-22 14:45

posted by wap, platform: MAC OS X
你XML丢上来 我给你弄
作者: up_duowan    时间: 2025-1-22 14:51

引用:
原帖由 yonexhb 于 2025-1-22 06:45 发表
posted by wap, platform: MAC OS X
你XML丢上来 我给你弄
附件不让传,你看着这个能不能看到

链接: https://pan.baidu.com/s/1P7tB9i1wlfzsI-kGw-tK5A 提取码: mp79

不过还是希望能知道替换方法,后面还有SFC等好几个包要做,文件格式应该都类似

[ 本帖最后由 up_duowan 于 2025-1-22 06:53 编辑 ]
作者: yonexhb    时间: 2025-1-22 14:54

posted by wap, platform: MAC OS X
<path>./[AV麻将俱乐部]AV.Mahjong.Club.(Japan).(Unl).nes</path>
<name>AV Mahjong Club</name>



<path>./[AV麻将俱乐部]AV.Mahjong.Club.(Japan).(Unl).nes</path>
<name>AV麻将俱乐部</name>

是这样吗?

本帖最后由 yonexhb 于 2025-1-22 14:55 通过手机版编辑
作者: yonexhb    时间: 2025-1-22 15:04

链接: https://pan.baidu.com/s/1e8SOMsGcYWt6OE7uNAREiQ 提取码: axvc 复制这段内容后打开百度网盘手机App,操作更方便哦

你看一下 现在这样是否可以

[attach]1222130[/attach]
作者: up_duowan    时间: 2025-1-22 15:18

引用:
原帖由 yonexhb 于 2025-1-22 07:04 发表
链接: https://pan.baidu.com/s/1e8SOMsGcYWt6OE7uNAREiQ 提取码: axvc 复制这段内容后打开百度网盘手机App,操作更方便哦
你看一下 现在这样是否可以
1222130
有一点小地方还望帮忙修改一下,就是部分汉化rom,为了和原版rom加以区别,我在文件名后面加了[中],希望把这个带进去,没有加[中]的就不需要了,大概就是这种区别
引用:
    <path>./[AV麻将俱乐部]AV.Mahjong.Club.(Japan).(Unl).nes</path>
    <name>AV麻将俱乐部</name>

   <path>./[AV麻将俱乐部][中]AV.Mahjong.Club.(Japan).(Unl).nes</path>
    <name>AV麻将俱乐部[中]</name>
当然,如果能够在<name>里面把那个.替换成-,变成“龙魂-新的传说”就更感激不尽了

[ 本帖最后由 up_duowan 于 2025-1-22 07:23 编辑 ]
作者: 0瞎子0    时间: 2025-1-22 15:29

posted by wap, platform: iPhone
直接条件判断不就行了,不需要用到正则吧
作者: yonexhb    时间: 2025-1-22 15:35

posted by wap, platform: MAC OS X
引用:
原帖由 @up_duowan  于 2025-1-22 15:18 发表
有一点小地方还望帮忙修改一下,就是部分汉化rom,为了和原版rom加以区别,我在文件名后面加了
链接: https://pan.baidu.com/s/1ckZl4dl8VP5bpSpMCljG2Q 提取码: tf3v 复制这段内容后打开百度网盘手机App,操作更方便哦
看一下是否可以了
作者: yonexhb    时间: 2025-1-22 15:38

posted by wap, platform: MAC OS X
引用:
原帖由 @0瞎子0  于 2025-1-22 15:29 发表
直接条件判断不就行了,不需要用到正则吧
教练 我想学代码
作者: up_duowan    时间: 2025-1-22 15:41

引用:
原帖由 yonexhb 于 2025-1-22 07:35 发表
posted by wap, platform: MAC OS X
链接: https://pan.baidu.com/s/1ckZl4dl8VP5bpSpMCljG2Q 提取码: tf3v 复制这段内容后打开百度网盘手机App,操作更方便哦
看一下是否可以了
非常OK,少量不规范造成的问题我自己改

不过还希望大能传授一下代码或工具,我后面还有好几个包要弄
作者: yonexhb    时间: 2025-1-22 15:45

posted by wap, platform: MAC OS X
引用:
原帖由 @up_duowan  于 2025-1-22 15:41 发表
非常OK,少量不规范造成的问题我自己改

不过还希望大能传授一下代码或工具,我后面还有好几个包要弄
我不叫大能 我叫雷锋

链接: https://pan.baidu.com/s/18mIXwHdXONUzpDTPqYLSyg 提取码: hmw8

golang 的 自己研究一下

[代码在这个里面] 自己研究一下

本帖最后由 yonexhb 于 2025-1-22 15:46 通过手机版编辑
作者: up_duowan    时间: 2025-1-22 15:54

引用:
原帖由 yonexhb 于 2025-1-22 07:45 发表
posted by wap, platform: MAC OS X
我不叫大能 我叫雷锋

链接: https://pan.baidu.com/s/18mIXwHdXONUzpDTPqYLSyg 提取码: hmw8

golang 的 自己研究一下

[代码在这个里面] 自己研究一下

本帖最后由 yon ...
谢谢,不过这个要用什么运行?
作者: yonexhb    时间: 2025-1-22 16:06

posted by wap, platform: MAC OS X
golang
怎么搭环境 自己研究一下
作者: tzenix    时间: 2025-1-22 16:42

搞定了吗
如果没搞定,pm我
作者: jzhl    时间: 2025-1-22 20:10

posted by wap, platform: 小米
和安全与不相关的东西用AI辅助写正则挺好的,我记得之前还有一个网站把正则表达式图形化,结合那个辅助写就更容易了。
作者: yonexhb    时间: 2025-1-22 20:42

posted by wap, platform: iPhone
引用:
原帖由 @yonexhb  于 2025-1-22 15:45 发表
我不叫大能 我叫雷锋

链接: https://pan.baidu.com/s/18mIXwHdXONUzpDTPqYLSyg 提取码: hmw8

golang 的 自己研究一下

自己研究一下

本帖最后由 yonexhb 于 2025122 15:46 通过手机版编辑
代码都在里面了
自己装个环境就行呗
作者: somesun    时间: 2025-1-22 23:10

posted by wap, platform: Chrome
根据以上下yonexhb 得go的代码

用ai 转换成python代码, 顺便加了gui界面, 打包了解压即用

使用方法:
1. 下载解压
2. 执行xml-trans.exe
3. 选择xml文件, 即可在同目录生成转换好的xml文件

注意: 我只是随便弄下, 不负责后续修改, 解答问题等, 需要改代码, 在app目录下, main.py , 现在
有ai辅助, 很容易改

通过网盘分享的文件:xml-trans
链接: https://pan.baidu.com/s/1sAcV7ONbvlw77nYVPQxNIw?pwd=tgfc 提取码: tgfc
--来自百度网盘超级会员v5的分享
作者: mting    时间: 2025-1-23 00:31

https://github.com/mting806/tgfc/releases
我贱了一个 github action 自动变易这个go
从release下载就ok

我改了一下 output.xml就是盖好的

[ 本帖最后由 mting 于 2025-1-23 01:22 编辑 ]
作者: yonexhb    时间: 2025-1-23 08:37

我做成了 在线的版本

网址 https://icehan.delonggou.com/1.php

为了防止中文乱码 上传的 XML文件 第一行做一个小修改 修改内容看图

[attach]1222150[/attach]
作者: urtoys    时间: 2025-1-23 09:25

羽毛球佬爱好还挺广泛。
作者: wang_h_r    时间: 2025-1-23 09:33

最后那个加个[中]啥没想怎么弄,单把前面那一段换了

\[(.*)\]([^\n]*\n[^\n]*)<name>(.*)</name>
替换为
[\1]\2<name>\1</name>
作者: yonexhb    时间: 2025-1-23 09:35

posted by wap, platform: MAC OS X
引用:
原帖由 @urtoys  于 2025-1-23 09:25 发表
羽毛球佬爱好还挺广泛。
喷了
作者: lvcha    时间: 2025-1-23 09:43

posted by wap, platform: Firefox
问chatgpt不更快?
作者: dirlee    时间: 2025-1-23 10:14

posted by wap, platform: MAC OS X
喷了,TGFCgpt
作者: iffox    时间: 2025-1-23 11:28

楼主用上ai了没有,自己提要求让ai帮你写,py脚本好用,[中]都是小问题。
这个单纯用notepad++查找正则表达式是不行的,因为它不能轮询。
作者: somesun    时间: 2025-1-23 12:47

posted by wap, platform: Android
引用:
原帖由 @iffox  于 2025-1-23 11:28 发表
楼主用上ai了没有,自己提要求让ai帮你写,py脚本好用,都是小问题。
这个单纯用notepad++查找正则表达式是不行的,因为它不能轮询。
怎么说呢

ai是能帮写程序

但还是要人搭环境调试等等,这些事对新手其实更麻烦

不过我上面给了完整的包,有需要只要改py脚本,直接运行测试,无需再编译
作者: Tobar    时间: 2025-1-23 22:08

正则表达式就是个反人类的东西,毫无可读性。。。不知道怎么会发明这玩意出来




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0