我用什么正则表达式来区分西班牙语的动词?

时间:2011-08-01 15:13:56

标签: regex

我正在制作一个程序,用电子方式将西班牙语中的动词与其不定式形式结合起来。对于那些不熟悉西班牙语的人来说,西班牙语不定式是动词的非共轭形式。以下是西班牙不定式的几个例子:

Hablar, 科默, Escribir, Acostarse, Comprometerse, Vestirse

西班牙语中的所有不定式结尾都以“ar”,“er”,“ir”,“ass”,“erse”或“irse”结尾。这些结局中的每一个都需要完全不同的一组结合,因此我需要将每一个结合起来并以不同的方式处理它们。

我想知道正则表达式可以执行以下操作:

查找以“ar。”结尾的不定形式

查找以“er。”结尾的不定形式。

查找以“ir。”结尾的不定形式。

查找以“ass。”结尾的不定形式。

查找以“erse”结尾的不定形式。

查找以“irse”结尾的不定形式。

2 个答案:

答案 0 :(得分:4)

之前已经完成了。

[aei]r(?:se)?$

除了对于实际工作,你可能也想用非自反的附加代词做表格,比如decírmelo

答案 1 :(得分:0)

您的不定式结尾列表是错误的。西班牙语不定式也可以以-ír结尾(例如reír)。与此匹配的(粗)正则表达式为[aeií]r$。这假设您的文字已经是Unicode normalized to NFC

-arse (等)结尾的不定式实际上只是常规动词,其中非个人反身代词 se 附加为clitic。你不需要在一个共轭程序中处理它们,因为在反身动词中没有特定的共轭(通常在词典中用 -se 写); clitics可以附加到任何动词。

另一个问题是,西班牙语不定式不保留足够的信息来共轭甚至常规动词!特别是,如果所写的词干以“u”或“i”结尾,则不知道它是否是发音/ u /(resp。/ i /)与/ w /(resp / j /)。例如,“copiar”和“confiar”都是常规动词,但是从不定式来看,你无法分辨正确的现在时态变形

  • copiar:(哟) co <​​/ strong> pio “我正在复制”
  • confiar:(哟)con o “我相信”

因此,如果您使用不定式形式进行共轭,则 要求在词典中查找动词。 (如果你在当前的指示或虚拟语气中有3sg或3pl形式,这通常就足够了。)