我有一些纯文本有点结构化的剧本,格式类似于本文末尾的示例。我想将每个解析为某种格式,其中:
- 很容易拉出处理特定地点的舞台方向。
- 很容易调出属于特定角色的对话。
我能想到的最明显的方法是使用sed
orperl
或php
在每个块周围放置 div 标签,用代表角色、位置以及舞台方向或对话的类。然后,将其作为网页打开并使用 jQuery 提取我感兴趣的任何内容。但这听起来像是一种迂回的方式,也许这只是一个好主意,因为这些是我习惯的工具至。但我确信这是一个反复出现的问题,之前已经解决了,所以任何人都可以推荐一个可以在 Linux 机器上使用的更有效的工作流程吗?谢谢。
这是一些示例输入:
SOMEWHERE CORPORATION - OPTIONAL COMMENT
A guy named BOB is sitting at his computer.
BOB
Mmmm. Stackoverflow. I like.
Footsteps are heard approaching.
ALICE
Where's that report you said you'd have for me?
Closeup of clock ticking.
BOB (looking up)
Huh? What?
ALICE
Some more dialogue.
Some more stage directions.
以下是示例输出的样子:
<div class='scene somewhere_corporation'>
<div class='comment'>OPTIONAL COMMENT</div>
<div class='direction'>A guy named BOB is sitting at his computer.</div>
<div class='dialogue bob'>Mmmm. Stackoverflow. I like.</div>
<div class='direction'>Footsteps are heard approaching.</div>
<div class='dialogue alice'>Where's that report you said you'd have for me?</div>
<div class='direction'>Closeup of clock ticking.</div>
<div class='comment bob'>looking up</div>
<div class='dialogue bob'>Huh? What?</div>
<div class='dialogue alice'>Some more dialogue.</div>
<div class='direction'>Some more stage directions.</div>
</div>
我以 DOM 为例,但同样,只是因为这是我理解的。如果我怀疑滚动你自己的正则表达式和 jQuery 不是最佳实践,我愿意接受这种类型的文本处理任务的最佳实践。谢谢。