[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: чистка строк...
MatrixGod
всем здр!

вопросик...
есть строка, например:
"вася.п. купил пиво 'corona' со скидкой 10%"

надо почистить строку от всех символов и оставить только одни буквы и цифры.
надо это сделать с помощью регулярных выражений...

так чтоб в конце осталось:
"вася п купил пиво corona со скидкой 10"

нужен максимально простенький вариант!

всем спасибо!



Спустя 36 минут, 16 секунд (6.03.2010 - 04:59) Adil написал(а):
Вот максимально простой:

<?php
$text = "вася.п. купил пиво 'corona' со скидкой 10%";
$text = strtr($text,
"%'.", //перечисляем тут символы, которые надо убрать
" " //тут добавляем пробел на каждый новый символ
);
print $text;
?>

Спустя 6 часов, 47 минут, 56 секунд (6.03.2010 - 11:47) FatCat написал(а):
setlocale(LC_ALL, 'ru_RU.CP1251');
$text = preg_replace( "#[[:alnum:]]#", "", $text );

Спустя 4 часа, 49 минут, 44 секунды (6.03.2010 - 16:36) MatrixGod написал(а):
FatCat
спасибо!

только вместо #[[:alnum:]]# надо вписать #[[:punct:]]#... smile.gif

а если после обработки строки этой функцией получается строка в которой между словами получается 2 или более пробелов.

как все пробелы (если их больше одного) превратить в один пробел?

Спустя 10 минут, 31 секунда (6.03.2010 - 16:47) DedMorozzz написал(а):
Если регуляркой, то как-то так:
preg_replace ("/[ ]+/"," ",$text);

Можно написать просто / +/, но я скобками выделил, то бы было видно, что там пробел.

Спустя 4 часа, 58 минут, 12 секунд (6.03.2010 - 21:45) Adil написал(а):
регулярки захватили мир.. везде регулярки..

Спустя 14 минут, 12 секунд (6.03.2010 - 21:59) FatCat написал(а):
Цитата (Nezabivaemiy @ 6.03.2010 - 22:45)
везде регулярки..

Кстати, несколько раз тестировал ресурсоемкость на больших текстах, и почти всегда регулярки проигрывали сабстрингам на пару порядков.

Подумываю написать свой класс функций для работы со строками, и сделать весь на сабстрингах, никаких регулярок. rolleyes.gif

Спустя 10 минут, 33 секунды (6.03.2010 - 22:10) Adil написал(а):
FatCat простые манипуляции это да быстрее..поэтому стараюсь избегать регулярок где можно обойтись двумя, максимум тремя манипуляциями с обычными функциями..
но вот интересно, если придется использовать несколько манипуляций вместо одной регулярки, у которого метода какие будут плюсы.

Если напишешь класс, выставляй тоже взглянем.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.