【发布时间】:2012-10-17 19:53:46
【问题描述】:
在定量诗歌中(就像希腊和拉丁诗歌中使用的那样),行被分成称为 spondees 和 dactyls 的部分。 dactyl 是长元音(如 ā)后跟两个短元音,而 spondee 是两个长元音。
我的目标是在 Python 中自动将行拆分为 spondees 和 dactyls。
给定一行
ārma virūmqe canō
我正在尝试获取输出
arma vi / rūmque ca / nō
我一直认为使用正则表达式来查找模式 (long,short,short) 或 (long,long) 是一个好主意,但我似乎无法弄清楚如何处理事实上,这些元音很少是连续的,而且它们之间的辅音数量每次都会变化。
有没有一种方法可以使用正则表达式来查找具有任意数量的其他不相关字符的特定字符?如果没有,是否有另一种相对优雅的方式来实现相同的目标?
编辑:
如果您需要更多示例,@Junuxx 指出了一个很棒的网站。 Here's 指向埃涅阿斯纪前 7 行扫描图片的链接,我从中得到了上面的示例。每当一个片段中只有两个元音时,它就是一个 spondee。如果有三个,那就是dactyl。忽略粗体线,因为它们只是表示一行中的第三个部分。
编辑二:
看起来我在我的例子中打错了。我写了“virumqe”,而实际上,该行是“virumque”。在拉丁语中,(ae,au,ei,eu,oe) 是双元音,被视为一个元音。那么,我想我必须修改我的问题,询问是否也可以处理这些问题。
【问题讨论】:
-
你能再举几个例子吗,特别是对于spondee?
-
我同意@poke。更多的例子会很好。我是希腊人,我什么都不懂:)
-
有意思,根据this,例子应该分
arma / vi rumque / ca no -
没错,但那个版本并不完整。 “ue”是一个双元音,这意味着它被算作一个元音。因此,元音是“i”、“u”和“ue”。该页面再往下一点,作者解释了更多,最终的大版本和我一样。
-
如果拆分部分取决于发音(例如,spY),请参阅相关问题:Python: How to prepend the string 'ub' to every pronounced vowel in a string?
标签: python regex substitution