Автор Тема: RegEX  (Прочитано 2657 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
RegEX
« : 06 Ноября 2001, 11:40:09 »
Здраствуйте!

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

Дизайн от такого расширяется, как с помощью регулярных выражений исправить это?
$text=ereg_replace("([^ \\t\\n\\t]{15})[^ \\t\\n\\t]*","\\\\1",$text);
вот так обрежется на 15 символе. А как сделать чтоб после 15 символа ставился тег
?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
RegEX
« Ответ #1 : 06 Ноября 2001, 14:35:08 »
Недавно на fido7.ru.php такое решение вычитал:

function break_long_words($source_text,$lng)
{
   $regExp=\'/(\\S{\'.$lng.\',})/ei\';
   $res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
   return $res_text;
}

$lng - через сколько символов ставить \\n
$source - искомая строка

можешь \\n заменить на
, хотя с \\n тоже все нормально работает
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

  • Гость
RegEX
« Ответ #2 : 06 Ноября 2001, 15:20:48 »
Спасибо

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
А если усложнить
« Ответ #3 : 10 Декабря 2001, 07:00:43 »
А если нужно усложнить гдето вот так:
1.1 Если $regExp попадает в слово:
1.2 То нужно что бы была проверка сколько символов до конца слова, если больше 5, то ищем начало слова и если до начала слова больше 5 символов то режим там где есть?

О как надуманно :)
.::dO_ob::.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
RegEX
« Ответ #4 : 10 Декабря 2001, 14:31:53 »
Этот regexp для разбиения монолитного текста - то есть текста без пробелов и символов перевода строки. На простой текст с пробелами и переводами строки он вообще не реагирует.
То есть если например есть текст :

$a
="Мои познания PHP начались не более месяца тому назад" 
echo break_long_words($a,20);

то текст не будет изменен, потому что в нем нет фрагмента строки более 20 символов без пробелов. А если бы написал так:

$a
="Мои познания PHP начались не более месяца тому назад" 
echo break_long_words($a,4);

то получил бы такой результат:
Мои позн
ания PHP нача
лись не боле
е меся
ца тому наза
д


Если ты не понял ничего из того что я тут написал - просто поюзай эту функцию, думаю разберешься.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
RegEX
« Ответ #5 : 11 Декабря 2001, 08:43:00 »
сенькс...
пошел юзать....
.::dO_ob::.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28