вопросик...
есть строка, например:
"вася.п. купил пиво '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:]]#...
а если после обработки строки этой функцией получается строка в которой между словами получается 2 или более пробелов.
как все пробелы (если их больше одного) превратить в один пробел?
спасибо!
только вместо #[[:alnum:]]# надо вписать #[[:punct:]]#...

а если после обработки строки этой функцией получается строка в которой между словами получается 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) |
везде регулярки.. |
Кстати, несколько раз тестировал ресурсоемкость на больших текстах, и почти всегда регулярки проигрывали сабстрингам на пару порядков.
Подумываю написать свой класс функций для работы со строками, и сделать весь на сабстрингах, никаких регулярок.

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