Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос строки, вопрос по регулярным выражениям 
:(
    Опции темы
sMake
Дата 18.7.2008, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Сейчас практикуюсь с рег. выражениями и вот не получается разбить строки в месте двойного переноса

Код

бла бла бла
бла бла бла

тест тест
тест тест



Покажите пожалуйста выражение, чтобы разбить этот пример на два элемента по /n/n.
PM MAIL   Вверх
Mal Hack
Дата 18.7.2008, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



#(.+?)\n{2}#s
PM ICQ   Вверх
sMake
Дата 18.7.2008, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Ничего не возвращает.. что-то нетак с двумя \n
В чём может быть проблема ?
PM MAIL   Вверх
gta4kv
Дата 18.7.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 1
Всего: 91



#(.+?)\n{0,10}#iU
?

Это сообщение отредактировал(а) gta4kv - 18.7.2008, 11:11
PM MAIL   Вверх
Mal Hack
Дата 18.7.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



sMake, покажите код, сделайте print_r($matches)...
PM ICQ   Вверх
sMake
Дата 18.7.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Код


$text = 
"aaaaa
aaaaaa

bbbbbb
bbbbbb

";
preg_match_all("#(.+?)\n{2}#s", $text, $res_array);
print_r($res_array)

Array ( [0] => Array ( ) [1] => Array ( ) )




PM MAIL   Вверх
Mal Hack
Дата 18.7.2008, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



А если теперь сырцы посмотреть?
Тот же самый код вывел:
Код

Array ( [0] => Array ( [0] => aaaaa aaaaaa [1] => bbbbbb bbbbbb ) [1] => Array ( [0] => aaaaa aaaaaa [1] => bbbbbb bbbbbb ) ) 

Соответственно, если убрать в паттерне скобки, получим только один элемент.
Тестировал на ЮНИКс машине.
PM ICQ   Вверх
sMake
Дата 18.7.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Также ничего не выдаёт..

а в чём может быть проблема? У меня стоит денвер под виндой...
Я ещё пытался http://www.pcre.ru/eval/ тут посмотреть, тот пример, но он его тоже не так разбивает  smile 
PM MAIL   Вверх
Feldmarschall
Дата 18.7.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



sMake, а как ты сам себе представляешь это выражение?
Ну, в смысле, не на форуме спросить, а если бы ты сам его писал?
и ты уверен, что строки у тебя разделяются именно \n\n?
PM   Вверх
sMake
Дата 18.7.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Цитата

а как ты сам себе представляешь это выражение?

Любое количество любых символов включая символ перевода строки а заканчивается элемент двойным переводом строки. Как я и приводил в примере

Код

aaaaaaaaa
aaaaaaaaa

bbbbbbbbb
bbbbbbbbb


И результат должен быть такой как привел Mal Hack
Код

Array ( [0] => Array ( [0] => aaaaa aaaaaa [1] => bbbbbb bbbbbb ) [1] => Array ( [0] => aaaaa aaaaaa [1] => bbbbbb bbbbbb ) ) 


Цитата

ты уверен, что строки у тебя разделяются именно \n\n? 


Как я понимаю там идёт вот так:

Цитата

aaaaaaa\n
aaaaaaa\n
\n
bbbbbbb\n
.....



Я пытался ещё задать такой паттерн [\W\w]+\n{2}, но он всё одним элементом выдаёт. 
PM MAIL   Вверх
Feldmarschall
Дата 18.7.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



паттерн для чего?
для какой функции?

Цитата(sMake @  18.7.2008,  14:20 Найти цитируемый пост)
Как я понимаю там идёт вот так:

"понимаю", и "идет" - это разные вещи.
Надо исходить не из предположений, а из реальности.
PM   Вверх
solenko
Дата 18.7.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



В вин разделитель будет \n\m\n\m, помоему. На mac тоже будет отличатся. Использование PHP_EOL может помочь


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 18.7.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Все правильно, на винде перевод сроки - последовательность \r\n, поэтому он у тебя не работает...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.