Помогите с регуляркой

Yura

Новичок
Помогите с регуляркой

Есть прайс-лист в csv. Мне нужно получить все названия продукции из одной колонки, удалив из этих названий все символы, кроме латинских букв и цифр.
Я пишу так:

$re="~.[^[a-zA-Z_0-9]]*~i";
$f_name = preg_replace($re, "", $f_name);

Т.е., делаю замену всех ненужных символов на "".


Вот чего получается:
Многие замены делаются нормально, но некоторые так:
"KBE 219" заменяется на "KB21", т.е., обрезается последний символ.
Или "Monblanc 31,5х25х1,2" заменяется на "Monblan35h25h2", т.е., некоторые символы пропускаются.

Подскажите, что я не так делаю в регулярке? Или может не в ней дело?
 

Yura

Новичок
Автор оригинала: Bitterman
А зачем точка перед квадратной скобкой?
Да, действительно. Без этой точки все заработало. Я сначала думал, что точка - это типа "Любой символ" кроме того, что в квадратных скобках.
Разобрался, теперь понял, как это работает.

Спасибо!
 
Сверху