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]
,