» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 30 12
发新话题
打印

[求助] 求助一下会写代码或者会写正则表达式的坛友,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>
谢谢坛友


TOP

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)先进行验证。



TOP

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

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

查找正则表达式:
```regex
\.\/\[([^\]]+?)\](?:\[([^\]]+)\])?.* ...
替换式似乎不行


TOP

posted by wap, platform: Android
用excel分下列就行…

TOP

posted by wap, platform: MAC OS X
你XML丢上来 我给你弄

TOP

引用:
原帖由 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 编辑 ]

TOP

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 通过手机版编辑

TOP

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

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

附件: 您所在的用户组无法下载或查看附件

TOP

引用:
原帖由 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 编辑 ]

TOP

posted by wap, platform: iPhone
直接条件判断不就行了,不需要用到正则吧

TOP

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

TOP

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

TOP

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

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

TOP

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 通过手机版编辑

TOP

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

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

golang 的 自己研究一下

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

本帖最后由 yon ...
谢谢,不过这个要用什么运行?

TOP

 30 12
发新话题
     
官方公众号及微博