我有一些纯文本结构的剧本,格式类似于这篇文章末尾的例子。我想将每种格式解析为如下格式:
我能想到的最明显的方法是使用sed、perl或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作为示例,但同样,这只是因为我理解它。对于这种类型的文本处理任务,如果正如我所怀疑的那样,滚动自己的regexp和jQuery不是最佳实践,那么我愿意接受任何被认为是这类文本处理任务的最佳实践。谢谢。
发布于 2013-07-06 20:45:11
您可以使用塞尔特克斯进行导入纯文本脚本,并将它们导出到导入纯文本脚本(元数据的RDF/XML )(请参阅此相关螺纹和博客文章,描述文件结构。)。
像特雷比这样的其他剧本编辑器也可能提供这个功能。
还有泉水,一种用于编写剧本的纯文本标记语言。它们提供库,您可以这样做(我没有检查它们是否提供了用于导入和转换的东西),用于您的目的:
“喷泉”是免费的、开源的,它的库使得在你的应用程序中添加支持变得更加容易。
即使这些项目不能用于您的目的,您至少可以在输出中重用它们的格式。
发布于 2013-07-04 17:04:16
如果您的输入不太嘈杂,也就是说,如果您可以相信一些规律,比如对于对话框来说缩进更大,而不是注释,我将使用一个简单的语境自由语法。您在所有语言中都有很好的实现,您可以找到很多关于它的信息。
如果您的输入变化很大,那么就选择机器学习路线,但是您需要有大量的输入和人工验证的输出来进行培训,这可能会带来麻烦。
在任何情况下,我永远不会用正则表达式来解决类似的问题。
https://stackoverflow.com/questions/17454291
复制相似问题