找回密码
 立即注册
查看: 1589|回复: 17

替换ASS/SRT字幕文件""为「」的方法和工具。

  • TA的每日心情
    慵懒
    1 小时前
  • 签到天数: 1612 天

    [LV.Master]伴坛终老

    15

    主题

    75

    回帖

    0

    VC币

    星辰大海

    爱の探求者

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    351477
    waecy 发表于 2024-5-17 17:00:31 | 显示全部楼层 |阅读模式
    本帖最后由 waecy 于 2024-5-20 19:31 编辑

    感谢坛友的各种方法


    第1种 支持正则匹配的文本编辑器替换法
    感谢12楼 @Lambholl 提供最简单方法


    支持正则的文本编辑器

    notepad++
    EmEditor

    都可以

    ① Ctrl + H打开替换

    ② 勾选「正则表达式」选项

    ③ 「查找」文本框输入以下任意一条正则
    1. "(.+?)"
    复制代码
    1. "([^"]*)"
    复制代码
    1. \x22([^\x22\r\n]+?)\x22
    复制代码
    已亲测,都可正常替换双引号为「」



    感谢13楼 @Yukarubih 补充其他正则
    匹配双引号通用型, 不用考虑转义(\x22:ASCII码表示的双引号)
    \x22(.*?)\x22

    不匹配 ""(单纯的两个双引号)
    "([^"]*)"



    以下通义千问的解析
    1. \"(.+?)\"
    • 目的:这个表达式用于匹配由转义双引号(看起来像 \")包围的任何内容,包括文本、数字、空格等。它采用非贪婪方式匹配(也就是尽量少地匹配字符),因此即使内部是空的也会匹配(但至少会匹配一对转义双引号)。
    • 例子:在字符串 "He said, \"Hello there!\"" 中,它会匹配到 \"Hello there!\"。

    2. "([^"]*)"
    • 目的:用于匹配由标准双引号(")包围的非空内容,确保内部没有未转义的双引号。使用了否定字符集[^"]来排除双引号本身,星号(*)表明这些非双引号字符可以出现任意次数,但至少要有一次,因此不会匹配空的双引号对。
    • 例子:在 "Today is a sunny day." 中,它会匹配到 Today is a sunny day.。而 "" 不会被匹配。

    3. \x22([^\x22\r\n]+?)\x22
    • 目的:这个表达式匹配由ASCII码表示的双引号(\x22)包围的任何非空内容,同时确保内容中不包含未转义的双引号、回车符(\r)和换行符(\n)。这使得它适用于文本行内双引号内容的匹配,排除了可能导致字符串提前结束的特殊字符。
    • 例子:在字符串 \x22A line of text without newline or quotes.\x22 中,它会匹配到 A line of text without newline or quotes.。这个表达式更加严格,避免了跨行或含有内部未转义双引号的匹配。

    总结
    • \"(.+?)\" 适用于广泛查找转义双引号内的内容,即使内容为空。
    • "([^"]*)" 专用于捕获不含内部双引号的非空字符串。
    • \x22([^\x22\r\n]+?)\x22 更为精确,不仅排除内部双引号,还排除了换行和回车,适用于精确控制的文本段落处理。

    ④ 「替换完」文本框输入
    「$1」

    ⑤ 点击「全部替换」或「替换全部」就可以了

    优点:
    ① 操作简单,哪怕不懂正则的,直接拿来用就行
    ② 可以不用管SRT/ASS字幕文本格式
    无论ANSI还是UTF-16或UTF-8格式,只要拖动到支持正则的文本编辑器都可以一键替换

    缺点:
    ① 不懂正则的,每次需要输入正则,不过文本编辑器只要替换过,都有下拉记录次数功能.如果不是常使用,直接从记录里下拉就行

    PS:如果不想每次复制/粘贴使用正则,可以用「Ditto」这款监视剪切板,可以置顶指定正则来随时替换,快捷键呼出悬浮窗口直接选择



    第2种 批处理法
    @tmdtmdtmdqq 感谢6楼写的批处理,可以批量拖动处理双引号替换「」,但注意ASS格式,不支持ANSI格式, 更改后默认乱码,UTF-8和UTF-16都可以正常更改显示





    优点:
    ① 不用每次打开字幕文件,直接拖动就可以生成更改后的文件
    ② 原来字幕文件备份新文件,以防一些错误发生
    ③ 通用性强,不单单能用来替换双引号,可以修改代码使用其他正则或文本替换

    缺点:
    ① 必须每次把bat放到字幕目录下,或者分开放拖动使用
    ② 测试不支持ANSI格式,如果字幕文件是各种格式混搭的,有ANSI格式的,还有UTF-8的,还得转换格式才能使用


    第3种 本地网页离线法
    HTML + CSS + javaScript代码实现

    ① 单文件替换双引号为「」,双行预览,导出原文件名,加高亮,滚动条同步




    ② 多文件替换双引号为「」,添加后缀,点击按钮批量下载




    优点:
    ① 单文件可以高亮对照修改符号
    不过这个功能,可有可无
    ② 下拉同步预览,notepad++也有插件可以做到,也没太大优势

    缺点:
    ① 必须每次打开HTML,但这点可以放到书签收藏
    ② 多文件一键下载.浏览器一般默认同步下载.并不是完全异步下载.多文件替换完成需要几秒,或者文件多,有可能几十秒







    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 1活跃度 +3200 收起 理由
    Xibeilius + 3200 非常好经验,使我给出评分。

    查看全部评分

    ACGN动漫在线+下载+科普相关网站共享目录
    http://867258173.ysepan.com
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 1064 天

    [LV.10]以坛为家III

    21

    主题

    424

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1357708
    tmdtmdtmdqq 发表于 2024-5-17 22:26:31 | 显示全部楼层
    批处理+系统自带powershell,带源文件备份功能


    支持多文件,把多个字幕文件拖到图标就行
    也可以双击打开进行单个文件路径输入


    PS1:因批处理脚本处理转义字符输入困难,某些含特殊字符的文件名/文件路径过长可能会报错,你可以先改字幕名字再扔进去处理
    PS2:想修改其它就自己改脚本开头的 匹配模式变量patternMatchX 和 替换文本变量replaceTextX  (X是数字,暂时只支持同时替换3个匹配)。默认区分大小写,不想区分则修改变量caseSensitiveFlag为0






    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    欢迎报错继续向上改进我改进过的字幕。
    请勿将无实质性修改、劣化精简本人改进过的字幕重新发布到此论坛:如仅改名、仅打包、修改总错字数≤5、删除特效等。       ——20230204
    本人改进过的字幕,禁止以任何形式进行商用。若要附带在视频、种子中发布,请先咨询。      ——20231203
    一些字幕搜寻、制作的方法和经验汇总  →  >>>帖子<<<
    禁止DBD-Raws及其相关人士使用本人所有制作或修正改进过的字幕(包括过往的)      ——20240730
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-3-18 18:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    23

    主题

    309

    回帖

    1056

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    406055
    Lambholl 发表于 2024-5-20 10:56:58 | 显示全部楼层
    本帖最后由 Lambholl 于 2024-5-20 10:58 编辑

    正则表达式替换
    1. \"(.+?)\"
    复制代码
    替换成
    1. 「$1」
    复制代码


    回复

    使用道具 举报

  • TA的每日心情
    无聊
    14 小时前
  • 签到天数: 611 天

    [LV.9]以坛为家II

    5

    主题

    61

    回帖

    106

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    124985
    Yukarubih 发表于 2024-5-20 18:25:12 | 显示全部楼层
    本帖最后由 Yukarubih 于 2024-6-14 01:46 编辑

     
    楼主的总结能力很优秀啊。
    补充几个小技巧,完善帖子:
     
    匹配双引号通用型, 不用考虑转义(\x22ASCII码表示的双引号):
    1. \x22(.*?)\x22
    复制代码
     
    不匹配 ""(单纯的两个双引号):
    1. \x22([^\x22\r\n]+?)\x22
    复制代码

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    13 小时前
  • 签到天数: 3223 天

    [LV.Master]伴坛终老

    9

    主题

    378

    回帖

    58

    VC币

    版主

    Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

    积分
    733814

    不离不弃论坛管理组日积月累风雨无阻活跃达人

    yswysc 发表于 2024-5-17 17:57:57 | 显示全部楼层
    1. import re

    2. def replace_quotes(text):
    3.     return re.sub(r'"(.*?)"', r'「\1」', text)

    4. # Test the function
    5. text = 'She said, "Hello, World!"'
    6. print(replace_quotes(text))
    复制代码

    GPT写的,用regex101测试了一下应该好使
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-20 12:47
  • 签到天数: 278 天

    [LV.8]以坛为家I

    26

    主题

    397

    回帖

    455

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    394360

    新人登场崭露头角渐入佳境活跃达人

    橙兜酱 发表于 2024-5-17 18:36:44 | 显示全部楼层
    yswysc 发表于 2024-5-17 17:57
    GPT写的,用regex101测试了一下应该好使

    万能的GPT(
    我AE表达式也是找GPT写的,超好用
    动画年鉴-统计表 (notion.so)
    动画年鉴网盘目录 (xido.workers.dev)

    欢迎参观,如果想一起收集整理的话可以在统计表主页找我联系方式~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    1 小时前
  • 签到天数: 1612 天

    [LV.Master]伴坛终老

    15

    主题

    75

    回帖

    0

    VC币

    星辰大海

    爱の探求者

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    351477
    waecy  楼主| 发表于 2024-5-17 20:14:24 | 显示全部楼层
    本帖最后由 waecy 于 2024-5-17 20:16 编辑
    yswysc 发表于 2024-5-17 17:57
    GPT写的,用regex101测试了一下应该好使

    如果把目录下所有*.ass都替换,在新建文件夹,批量替换后输出新文件,请问该如何更改?


    举例
    文件内包含一个或多个""

    1. Dialogue: 0,0:08:32.36,0:08:34.67,*Default,NTP,0,0,0,,你说"怎么一回事"? 就是这么一回事啊
    2. Dialogue: 0,0:08:28.29,0:08:30.52,*Default,NTP,0,0,0,,你说要把"那个"要送给"那个人" 有没有搞错啊?
    复制代码
    怎样替换成「」格式
    1. Dialogue: 0,0:08:32.36,0:08:34.67,*Default,NTP,0,0,0,,你说「怎么一回事」? 就是这么一回事啊
    2. Dialogue: 0,0:08:28.29,0:08:30.52,*Default,NTP,0,0,0,,你说要把「那个」要送给「那个人」有没有搞错啊?
    复制代码
    保存新建「更改后」文件夹内
    ACGN动漫在线+下载+科普相关网站共享目录
    http://867258173.ysepan.com
    回复

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 377 天

    [LV.9]以坛为家II

    8

    主题

    176

    回帖

    0

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    304158
    ttt805446984 发表于 2024-5-17 21:23:33 | 显示全部楼层
    本帖最后由 ttt805446984 于 2024-5-17 21:25 编辑
    waecy 发表于 2024-5-17 20:14
    如果把目录下所有*.ass都替换,在新建文件夹,批量替换后输出新文件,请问该如何更改?

    下个Arctime Pro,里面有个字幕处理功能,可以批量替换字符

    补个图
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    1 小时前
  • 签到天数: 1612 天

    [LV.Master]伴坛终老

    15

    主题

    75

    回帖

    0

    VC币

    星辰大海

    爱の探求者

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    351477
    waecy  楼主| 发表于 2024-5-17 22:27:19 | 显示全部楼层
    ttt805446984 发表于 2024-5-17 21:23
    下个Arctime Pro,里面有个字幕处理功能,可以批量替换字符

    补个图

    试了下,这个替换和普通文本编辑器一样,没法单独匹配", 双引号单独替换「」,正则匹配是只能查到""内的,单独替换",会导致全部替换「或」


    刚用了javaScript倒是可以实现, 不过每次都得单独打开HTML,再选择字幕文本,导出速度也有些慢_(:з」∠)_

    先看看坛友有没其他方法了
    ACGN动漫在线+下载+科普相关网站共享目录
    http://867258173.ysepan.com
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    1 小时前
  • 签到天数: 1612 天

    [LV.Master]伴坛终老

    15

    主题

    75

    回帖

    0

    VC币

    星辰大海

    爱の探求者

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    351477
    waecy  楼主| 发表于 2024-5-17 22:39:32 | 显示全部楼层
    tmdtmdtmdqq 发表于 2024-5-17 22:26
    批处理+系统自带powershell,带源文件备份功能

    刚下载测试了下,发现""没替换「」


    点评

    ori = original = 原来的  发表于 2024-5-17 22:56
    XXX.ori.ass是源文件备份啊,修改后的文件是同名文件啊  发表于 2024-5-17 22:52
    ACGN动漫在线+下载+科普相关网站共享目录
    http://867258173.ysepan.com
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-26 20:58
  • 签到天数: 77 天

    [LV.6]常住居民II

    13

    主题

    250

    回帖

    456

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    36206
    StarRingChild 发表于 2024-5-18 13:16:54 | 显示全部楼层
    1. fd -e ass -x sed -i 's/〞\([^〞]*\)〞/「\1」/g'
    复制代码

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 446 天

    [LV.9]以坛为家II

    17

    主题

    39

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    59000
    klv48384 发表于 2024-5-18 14:21:45 | 显示全部楼层
    看到这个(" ")符号 不知道这里有没有 猎户发布组 的组员,希望他们的(" ")也可以换成「」
    回复

    使用道具 举报

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

    本版积分规则

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