Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: И снова pcre. Не находит текст между тегами, если в нём есть \n  (Прочитано 1766 раз)

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

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Сабж.
Регэксп: <body>(.*)</body>Текст: "<body>ololol
oloqwe</body>"
Если убрать
, то всё находится.

Нашёл вот такое:
(Нажмите, чтобы показать/скрыть)
Но что-то не соображу, какой флаг надо влепить, чтобы заработало.
Подскажите, пожалуйста.

Пользователь решил продолжить мысль 15 Января 2011, 18:01:53:
Нашёл, что . - любой символ, кроме этого самого злополучного \n. Как можно извернуться, чтобы подходил вообще-любой-символ между тегами?
« Последнее редактирование: 15 Января 2011, 18:01:53 от [DarkNet]Alpha »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Нашёл, что . - любой символ, кроме этого самого злополучного \n. Как можно извернуться, чтобы подходил вообще-любой-символ между тегами?
Модификатор s (PCRE_DOTALL)

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Что-то не врубился.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Какой язык программирования?

Пользователь решил продолжить мысль 15 Января 2011, 22:55:34:
http://turbonet.narod.ru/php/book/pcre.pattern.modifiers.html

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Тьфу,  забыл.
Default LanguageС++

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
myregexp = pcre_compile("<body>(.*)</body>", PCRE_DOTALL, &error, &erroroffset, NULL);

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Да! Заработало! Спасибо, добрый человек!

Пользователь решил продолжить мысль 15 Января 2011, 23:25:43:
Раз уж тема есть, задам еще один вопрос. Почему как одно совпадение выбирается весь текст между первым и последним тегом?
Текст типа такого:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 16 Января 2011, 00:20:30 от [DarkNet]Alpha »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Это всё из за жадности регэкспа. PCRE_UNGREEDY должен помочь.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Можете подсказать, где это всё внятно расписано? Всё, что я находил, обрывки.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Так а что конкретно не понятно? По той ссылке на педивикию по моему всё внятно расписано про жадные регэкспы.

Пользователь решил продолжить мысль 16 Января 2011, 13:24:44:
Еще жадностью можно управлять у каждого конкретного квантификатора, поставив после него знак вопроса (?). Например: <body>(.*?)</body>
« Последнее редактирование: 16 Января 2011, 13:24:44 от Mam(O)n »

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Я про всё о регэкспах, и, конкретно pcre. Может, учебник какой. А за ссылку спасибо, добавил знаний по теме.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Наверное всё актуальное про pcre в одном месте тут: http://www.pcre.org/pcre.txt. А так я даже не знаю, может и есть учебник какой, но лично я его не искал никогда, гугла всегда хватало...

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Ааааааааа!
С опцией ungreedy находит только первое. Да что ж за фигня то? :(

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Вот, в гугле пример нашел:
(Нажмите, чтобы показать/скрыть)

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
бедные пингвинята, им не ведомо, что все украдено до них
Я конечно далек от мысли...(с)

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.