Du kannst anders vorgehen.
[^A-Za-z] würde nur die Buchstaben im englischen Alphabet zulassen. Du kannst weitere Zeichen in diese Klasse einfügen, die du zulassen möchtest. Das könnte so aussehen:
PHP-Code:
preg_replace('/[^a-z\.]/i', '', $str);
// Wegen i brauchst du A-Z nicht zusätzlich eingeben. \. erlaubt auch einen Punkt im String.