有没有一种方法可以将表示为ae,Ae,oe,Oe,ue,Ue
和ss
的umlauts转换回原始的umlauts?重要的是要观察拼写规则,例如术语“teuer
”中的拼写不应更改为“teür
”。谢谢!
有没有一种方法可以将表示为ae,Ae,oe,Oe,ue,Ue
和ss
的umlauts转换回原始的umlauts?重要的是要观察拼写规则,例如术语“teuer
”中的拼写不应更改为“teür
”。谢谢!
我建议您将每个“ue”、“oe”等出现的排列组合都转换一下。 每个排列组合指的是,如果有3个出现,首先只替换第一个,然后只替换第二个,然后只替换第三个,然后替换第一个和第二个等等。
接下来,检查结果是否包含在标准拼写检查字典中。这样做可以避免为例外情况创建自己的字典。
例如,可以在ftp://ftp.ox.ac.uk/pub/wordlists/german/words.german.Z上找到单词列表。
这将是相当棘手的。肯定没有内置函数可以做到这一点。
我看到的大多数示例都是相反的(即使用带有重音字符的字符串并用它们的ASCII等效项替换它们)。在我看到它被完成的地方,总是提供一个字符映射及其等效项,并扫描字符串进行替换。
PHP手册页面strtr()
函数上有一些很好的示例,说明您需要做的事情,但您要避免特定的异常要求将使整个过程变得非常复杂。
/^[^aeiou]?[aeiou]e/
可以匹配大多数情况。你仍然需要一个包含特定例外的字典,但一般情况下就可以覆盖大部分情况。 - Sysyphus