|
|
|
|
|
для: cheops
(26.09.2011 в 20:11)
| | >До фрагмента
> есть какие-то другие фрагменты с <table>?
могут быть могут не быть, текстов разбираю много, и привязываться к тому что таблица может быть одна нереально.
я уже подумал может както вот так
((?=<table>).+(?<!<\/table>))?(?(1)error|(?=<\w+>\s*Начало))
|
я знаю этот вариант не верный, но мысли пока в сторону найти незакрытый тег <table> который решит проблемы с поиском.
Приведу еще пример разбираемого текста
<span>вот так</span>
<table>
<tr>
<td>
<p>Начало</p>
<p>ненужный текст</p>
</td>
</tr>
</table>
<p>пусто</p>
<span>трали вали</span>
<p>Начало единственного правельного места</p>
<p> нужный текст</p>
<table>
<tr>
<td>
<span>тут текст мешающий найти тэг td, может быть бесконечно много</span>
<p>Начало</p>
<p>ненужный текст</p>
</td>
</tr>
</table>
<p>тут начало текста ненужного
начало не нужного текста</p>
|
| |
|
|
|
|
|
|
|
для: duhon
(26.09.2011 в 18:25)
| | До фрагмента
есть какие-то другие фрагменты с <table>? | |
|
|
|
|
|
|
| есть текст
<span>трали вали</span>
<p>Начало нужное</p>
<p> текст </p>
<table>
<tr>
<td>
<p>Начало ложное</p>
<p>ненужные текст</p>
</td>
</tr>
</table>
|
хочу разрезать текст на части таким образом что бы вышло две части
<p>Начало нужное</p>
<p> текст </p>
<table>
<tr>
<td>
<p>Начало ложное</p>
<p>ненужные текст</p>
</td>
</tr>
</table>
|
использую такое
preg_split('#(?=(<\p{L}+(?<=\p{Latin})>|\s)(?<!<td>))(?=\1Н(?<=\p{Lu})ачало)#'ui, $str)
|
использовать негативное ретраспективное утверждение (?<!<td>) перед началом регулярки не выходит, так как между тегами <td>...<p> есть неопределенное количество пробелов. Тоесть реально моя регулярка режит на 3 части, захватывает "ложное начало".
Вопрос, как проверить что вхождение нужного текста не находиться в незакрытом теге <table> | |
|
|
|
|