Помогите составить регулярку

Real
На сайте с 24.05.2006
Offline
61
464

Дано:

форум, где яркие представители молодежи создают темы в виде (кодов для символов не помню) :розочка::розочка::розочка: (и так раз 50) :звездочка::звездочка::звездочка: (и так еще раз 50) + еще куча непечатных символов + МЕНЯ ПРИНЯЛИ В ВУЗ + еще куча всевозможных символов.

Надо: всю красоту обрезать, оставить только печатные символы [а-яА-Яa-zA-Z] и их преобразовать в урл.

В данном примере , menya-prinyali-v-vuz.html. PHP.

Предложили идею забить массив с буквами и в цикл проверять каждый символ на соответствие. Это довольно ресурсоемкий путь, думаю через preg_match одной строкой реализовать.

он самый (http://alexvolkov.ru)
J
На сайте с 02.02.2009
Offline
53
#1

preg_replace("/[^а-я0-9a-z]+/i",$topic);

а дальше делать с топиком что надо

за локалью только следить - чтоб русские кушались

Real
На сайте с 24.05.2006
Offline
61
#2

jumash,

Array
(
[0] => ^-^ Ш
)

исходная строка

^-^ ШАШЛЫКИ+ФУТБОЛ В СУББОТУ !!!!!!

J
На сайте с 02.02.2009
Offline
53
#3

http://skazkin.ru/regex.php


<?
header('Content-Type: text/html; charset=windows-1251');
$topic = '^-^ ШАШЛЫКИ+ФУТБОЛ В СУББОТУ !!!!!!';
var_dump($topic);
$topic = preg_replace("/[^а-яА-Я0-9a-z_\s]+/"," ",$topic);
$topic = preg_replace("/\s\s+/","",$topic);
echo "<br>";

var_dump($topic);
function translitRuToEn ($string)
{
$r_trans = array(
"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
"н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","э",
"ю","я","ъ","ы","ь"," "
);

$e_trans = array(
"a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","c","ch","sh","sch",
"e","yu","ya","","i","","_"
);

$string = str_replace($r_trans, $e_trans, mb_strtolower($string));

return $string;
}
echo "<br>";
var_dump(translitRuToEn($topic));
highlight_file(__FILE__);
?>
[Удален]
#4
Real:

Предложили идею забить массив с буквами и в цикл проверять каждый символ на соответствие. Это довольно ресурсоемкий путь, думаю через preg_match одной строкой реализовать.

При длине строки большей некоторого N это будет намного быстрее чем регулярки.

Я так думаю, что посты на форуме скорее всего больше этого N.

Real
На сайте с 24.05.2006
Offline
61
#5
neolord:
что посты на форуме

там заголовки

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий