php preg_replace игнорирует ^ в конструкции [ˆabc]

Идея состоит в том, чтобы удалить все не алфавитные символы из строки.

$string = "abcd  5858add";
print preg_replace('/[ˆa-z]/', '', $string)."\n"; //produces '  5858' (wrong)
print preg_replace('/[a-z]/', '', $string)."\n";  //produces '  5858' (right)

Первое регулярное выражение должно удалить все не алфавитные символы. Второй должен удалить все буквенные символы. Но результат одинаков для обоих. Зачем?

Проверено на PHP 5.5.30, PHP 5.4.16

1 ответ

Решение

Это не карета, это акцент.

использование [^a-z] вместо [ˆa-z],

Другие вопросы по тегам