Closed JassNull closed 7 months ago
选择引擎JSON进行提取就行。 专门对读取[{name,messageRN}]做了处理,默认会保持name。捕获分组全用unfinish。
比如最简单的,控制代码全是半角字符的情况:
"message": "开始<font>中间</font>结束"
使用类似正则即可:(自行添加需要排除的字符)
10_search=(?P<unfinish>[^a-zA-Z0-9<>/]+)
复杂一点,但是控制代码有明确分界字符的(比如尖括号<>
,只需要提取<>
之外的文本),也可以使用|
进行匹配。
10_search=([^<>]+)$|(?P<unfinish>[^<>]+)<
尝试试了几次,老是少几十句话 控制代码都是“@+1~n个字母+1~n个数字”的数个组合 类似 @t33@d1 @t46@d1@t64@d2 @t45@d1@t115@d2 @t11@d1@t56@d2@t58@se218@t60@se218
看描述不清楚什么问题,缺少的文本和其他文本有什么区别吗?
总之JSON引擎只会匹配key:value
的value字符串内容,正则只需要按value匹配就行。
感谢,解决了
哦对,还有二次提取的时候应该是要把段落分隔符留空的吧?不留空会在原代码位置加上换行符
那个是分隔符不能置空,不然写回去的时候不知道译文怎么分开的。
所以说译文也需要保证SE插入的换行符存在是吧?是的话我就在翻译前替换成gpt不容易丢翻的符号了
恩,分隔符只要和被提取对象内容不同就行,也就是说你之前的json如果有\r\n的话,二次提取就用其他字符串。
好,感谢,应该没问题了
用VNT等其他工具提取的json的message里有非文本代码,想问下能否用SE写正则过滤掉,翻译完再把代码导入原位置 (本来打算摆烂直接丢进去翻的,结果代码丢失概率有点高) 代码有以下俩位置 "message": "代码A「游戏文本」" "message": "「代码B游戏文本」"