You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求适配模式的正则表达式:Emacs剧本完整对话捕获需求

在Emacs中匹配并格式化剧本对话的正则方案

我来帮你搞定Emacs里处理剧本对话的正则问题!你的剧本是<speaker>名字</speaker> 台词的结构,要捕获完整对话内容,我们可以针对这个结构设计精准的正则,同时适配多行台词的场景。

核心正则表达式(支持单行/多行台词)

针对你的对话模式,这个Emacs原生正则可以匹配完整的对话单元(包括跨多行的台词):

\<speaker>\([^<]*\)</speaker>\s*\(.*\(?:\n.*\)*\)\(?=\<speaker>\|$)

正则拆解:

  • \<speaker>:精准匹配开头的说话者标签
  • \([^<]*\):捕获说话者的名字(直到</speaker>的<符号为止)
  • </speaker>:匹配说话者标签的结尾
  • \s*:匹配标签和台词之间的任意空白(空格、换行都能覆盖)
  • \(.*\(?:\n.*\)*\):捕获所有台词内容,包括跨多行的文本
  • \(?=\<speaker>\|$):正向预查,确保匹配到下一个<speaker>标签或者文档结尾就停止,不会误包含后面的对话

快速格式化对话(用query-replace-regexp)

如果你只是想快速把剧本改成更易读的样式,比如加粗说话者、用引用块包裹台词,可以这么操作:

  1. 打开你的剧本文件

  2. 按下 M-x 输入 query-replace-regexp 回车

  3. 输入上面的正则表达式,回车

  4. 输入替换模板,比如:

    **\1:**
    > \2
    

    回车后,Emacs会自动把所有对话转换成清晰的格式:
    Madelon:

    Mon Dieu, que vous êtes vulgaire ! Pour moi, un de mes étonnements, c'est que vous ayez pu faire une fille si spirituelle que moi. A-t-on jamais parlé, dans le beau style, de Cathos ni de Madelon, et ne m'avouerez-vous pas que ce serait assez d'un de ces noms pour décrier le plus beau roman du monde ?

    Cathos:

    你的台词内容

批量提取所有对话到新缓冲区(Elisp函数)

如果需要把所有对话单独提取出来整理,可以用这个自定义函数:

(defun extract-script-dialogue ()
  (interactive)
  (let ((dialogues '()))
    ;; 从文档开头开始搜索
    (goto-char (point-min))
    ;; 循环匹配所有对话单元
    (while (re-search-forward "\<speaker>\([^<]*\)</speaker>\s*\(.*\(?:\n.*\)*\)\(?=\<speaker>\|$)" nil t)
      (push (cons (match-string 1) (string-trim (match-string 2))) dialogues))
    ;; 创建新缓冲区展示提取结果
    (with-current-buffer (get-buffer-create "*Script Dialogues*")
      (erase-buffer)
      (dolist (dialog (reverse dialogues))
        (insert (format "**%s:**\n> %s\n\n" (car dialog) (cdr dialog))))
      (display-buffer "*Script Dialogues*"))
    (message "已提取 %d 条对话" (length dialogues))))

使用方法:把这段代码复制到你的Emacs配置文件(比如~/.emacs.d/init.el),重启Emacs或者用M-x eval-buffer加载,然后运行M-x extract-script-dialogue,就能看到所有整理好的对话啦!

内容的提问来源于stack exchange,提问作者Arnaud Stephan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:34:22