Sie müssen sich die grammatikalischen Regeln für unbestimmte Artikel ansehen (es gibt nur zwei unbestimmte Artikel in der englischen Grammatik - "a" und "an"). Sie stimmen diesen möglicherweise nicht zu, aber die Regeln der englischen Grammatik sind sehr klar :
"Die Wörter a und an sind unbestimmte Artikel. Wir verwenden den unbestimmten Artikel an vor Wörtern, die mit einem Vokalton beginnen (a, e, i, o, u), und den unbestimmten Artikel a vor Wörtern, die mit einem Konsonantenton beginnen (alle andere Buchstaben). "
Hinweis Dies bedeutet einen Vokal - Sound , und nicht einen Vokal Brief . Zum Beispiel werden Wörter, die mit einem stillen "h" beginnen, wie "Ehre" oder "Erbe", als Vokale behandelt und daher mit "einem" fortgeführt - zum Beispiel "Es ist eine Ehre, Sie kennenzulernen". Wörter, die mit einem Konsonantenton beginnen, werden mit einem vorangestellt - weshalb Sie "ein Gebrauchtwagen" anstelle von "einem Gebrauchtwagen" sagen -, weil "gebraucht" eher einen "Joose" -Ton als einen "uhh" -Ton hat.
Als Programmierer sind dies die Regeln, die befolgt werden müssen. Sie müssen nur herausfinden, mit welchem Ton ein Wort beginnt und nicht mit welchem Buchstaben. Ich habe Beispiele dafür gesehen, wie dieses in PHP von Jaimie Sirovich:
function aOrAn($next_word)
{
$_an = array('hour', 'honest', 'heir', 'heirloom');
$_a = array('use', 'useless', 'user');
$_vowels = array('a','e','i','o','u');
$_endings = array('ly', 'ness', 'less', 'lessly', 'ing', 'ally', 'ially');
$_endings_regex = implode('|', $_endings);
$tmp = preg_match('#(.*?)(-| |$)#', $next_word, $captures);
$the_word = trim($captures[1]);
//$the_word = Format::trimString(Utils::pregGet('#(.*?)(-| |$)#', $next_word, 1));
$_an_regex = implode('|', $_an);
if (preg_match("#($_an_regex)($_endings_regex)#i", $the_word)) {
return 'an';
}
$_a_regex = implode('|', $_a);
if (preg_match("#($_a_regex)($_endings_regex)#i", $the_word)) {
return 'a';
}
if (in_array(strtolower($the_word{0}), $_vowels)) {
return 'an';
}
return 'a';
}
Es ist wahrscheinlich am einfachsten, die Regel zu erstellen und dann eine Liste von Ausnahmen zu erstellen und diese zu verwenden. Ich kann mir nicht vorstellen, dass es so viele geben wird.