![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2003
Сообщений: 31
|
Помогите, пожалуйста написать такое регулярное выражение, которое находит в строке длинные слова, больше 20 знаков, и разбивает их пробелами.
Заранее благодарен за помощь!!! |
|
|||||
|
Хм ... А зачем тебе ерег сдался ? Он же ресурсов до хвига и больше жрет!
Если школьное задание, то пожалуйста - /([\w]{10})([\w]10,})/ заменяем на /$1 $2/ лучше для этого дела использовать preg_replace если не для школы ... то тогда напиши хвункцию сам. Без регов |
|
|||||
|
Регистрация: Jun 2003
Сообщений: 31
|
2 kompadre:
А как твой совет до кучи собрать??? ![]() Чот я с "/$1 $2/" не очень понял... Напиши мне, пожалуйста, полностью preg_replace, который разбивает строку. |
|
|||||
|
Я сам не очень-то в моих советах разбираюсь ... Но смотри, берем :
- первая часть регулярного выражения (одна штука). В простонародие это называется pattern (игла, то что мы исчем) - вторая часть регулярного выражения (или replacement, то на что бум менять) - string (стог, строка из которой бум менять) так ... в другую руку берем функцию и подстовляем должно получится что-то вроде $replaced = preg_replace ("/([\w]{10})([\w]{10,})/", "$1 $2", $string); По идеи это должно в слове (в котором 20 или больше букв) вставить пробел на 10-й букве. Хотя коряво это блин * Прошу прощения, оказывается replacement-у не нужны косые! Последний раз редактировалось kompadre; 26.09.2003 в 02:17. |
|
|||||
|
"Вождь"
|
$str = "строка товя оргромная с мегачем-то там таким, кстати, самое длинное. известное мне и частоупотребляемое слово - достопримечтальность";
$ar = explode($str," "); foreach($ar as $curr) { $res .= wordwrap($curr,10," ",1) }
__________________
а мы летим орбитами путями не избитыми... |
|
|||||
|
Регистрация: Jun 2003
Сообщений: 31
|
2 kompadre:
Почти всё работает!!! ![]() Если слово из 20 букв, то всё ок (скрипт его разбивает на два по 10 букв), а вот если слово из 40 букв, то выводит первое слово из 10 букв, а второе - из 30 ![]() Тоесть после первого разбиения строки скрипт её дальше не смотрит Как это исправить???2 Nirva: $res возвращает пустое значение Почему??? |
|
|||||
|
Это ни как не исправиш, говорю тебе никакних регов. Ворд врап, только нирва все нимного попутал
$res = wordwrap($str,10," ",1) и все |
|
|||||
|
Ветеран форума
|
если так принципиально это сделать регом тогда вот так
если написать $b = preg_replace("/(\w{10})/", "$1 ", $a); тогда $b не изменится... надо именно $a = preg_replace("/(\w{10})/", "$1 ", $a); удачи... |
|
|||||
|
Здесь вынужден согласиться
|
|
|||||
|
"Вождь"
|
Цитата:
работает. в прошлом ступил, конечно.
__________________
а мы летим орбитами путями не избитыми... |
![]() |
Часовой пояс GMT +4, время: 18:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|