e-statik
Guest
очередной RegExp : немогу сообразить.
Переменная содержит такой отформаченый текст:
Закрывающих тегов нет. Нужно порезать на уроки - на блоки текстов между ближайшими тегами <lesson>. И учесть последний вариант, когда текст между <lesson> и концом исходной строки.
Пытаясь получить массив писал
preg_match_all("!<lesson>[^^]*<lesson>!", $file, $result)
Куски вырезались через один - найдя первое вхождение указатель оказывался после второго <lesson> и соответственно второй блок уже выпадал... И так далее..
Попробовал указать смещение - не спасло (видимо не к месту).
Вынуть последний блок пытался
preg_match_all("![^^]*<lesson>[^^]*$!", $file, $result)
- выбирается весь текст сразу (условию соотвествует блок начиная с первого же тега
).
Мог бы вставить закрывающие теги - с ними было бы проще, но хочется обойтись без этого.
Читал ФАКи, мануал PHP... Пока придумываются только изощренные варианты не в один ход.
И ещё: как отрицать целое слово (фрагмент)? Например, [^<lesson>] - это же группа символов, которая по идее будет отрицать и "<l>essno" ? Или нет?
Заранее спасибо.
Переменная содержит такой отформаченый текст:
Код:
<lesson>
<task>
много текста много текста много текста
много текста много текста много текста
<hint>
много текста много текста много текста
<lesson>
<task>
много текста много текста много текста
<lesson>
<task>
много текста много текста много текста
<hint>
много текста
<lesson>
<task>
много текста много текста много текста
Пытаясь получить массив писал
preg_match_all("!<lesson>[^^]*<lesson>!", $file, $result)
Куски вырезались через один - найдя первое вхождение указатель оказывался после второго <lesson> и соответственно второй блок уже выпадал... И так далее..
Попробовал указать смещение - не спасло (видимо не к месту).
Вынуть последний блок пытался
preg_match_all("![^^]*<lesson>[^^]*$!", $file, $result)
- выбирается весь текст сразу (условию соотвествует блок начиная с первого же тега

Мог бы вставить закрывающие теги - с ними было бы проще, но хочется обойтись без этого.
Читал ФАКи, мануал PHP... Пока придумываются только изощренные варианты не в один ход.
И ещё: как отрицать целое слово (фрагмент)? Например, [^<lesson>] - это же группа символов, которая по идее будет отрицать и "<l>essno" ? Или нет?
Заранее спасибо.