Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > Помогите плиз с регулярным выражением |
Автор: Konstantin555 19.8.2008, 14:19 | ||||||
Есть файл следующего содержания:
Нужно определить текст, идущий между ***Chapter_1*** и ***Chapter_2***, а также ***Chapter_2*** и ***End_chapter*** Пробывал следующим образом - результат нулевой...
Насчёт паттерна:
\*[3] - тройное повторение подряд знака * \w - любая буква или цифра ("Chapter") \W - не буква и не цифра ("_") \w - любая буква или цифра ("1") \*[3] - тройное повторение подряд знака * \s - перевод на новую строку Подскажите, плиз! В этом деле - я новичок! ![]() |
Автор: nornad 19.8.2008, 14:47 | ||
уже неверно. "трйоное" - это {3} ну и в целом паттерн неверен Попробуй так:
должен выдавать весь текст между заголовками секций (заголовок в формате "***чаптер_17***"). Получать как $res[1][$i]. Добавлено через 2 минуты и 9 секунд Но лично я бы тут не использовал регулярки. Секции идут последовательно и нетрудно их вытащить за один проход "ручками" по строке. Да и надёжнее. А регулярки - штука дорогая. |
Автор: Konstantin555 19.8.2008, 14:59 | ||||
Нет, не работает... Вот функция преобразованная:
Скорее всего так и придётся сделать... В каком смысле "дорогая"? Капризная? ![]() |
Автор: nornad 19.8.2008, 15:50 | ||||
много времени и ресурсов. попробуй такой вариант:
а цикл я бы предложил делать foreach:
|
Автор: gta4kv 19.8.2008, 17:51 |
Ему массив надо передавать. http://php.net/foreach |
Автор: nornad 19.8.2008, 20:42 |
После preg_match_all в $res[1] и будет массив ![]() |
Автор: Konstantin555 19.8.2008, 21:08 | ||||
Бррр..... запутался! Я так понял, что ты имел в виду следующее - вместо preg_match_all использовать цикл! Разве не так?..
preg_match_all - как бы регулярка ведь... сам себе, на мой взгляд, противоречишь! |
Автор: solenko 19.8.2008, 21:17 |
Konstantin555, считать файл в массив строк -- функция file Далее в foreach построчно анализируете. |
Автор: nornad 19.8.2008, 21:41 |
не так. foreach вместо for А если без регулярки - это совсем по-другому будет ![]() Добавлено через 4 минуты и 55 секунд Кстати, если интересен вариант без регулярок, то нужна новая тема - тут это офтопом будет. |
Автор: Konstantin555 20.8.2008, 00:20 | ||||
Не получилось...
Угу, интересует! Тема http://forum.vingrad.ru/forum/topic-224987/kw-выборка-текста-выбор.html |