Здравствуйте. На странице создал пример, описывающий ситуацию: регвыражение захватывает текст начиная с первого появления символов <tr, начиная с первой строки таблицы. Как должно выглядеть регвыражение, чтобы оно соответствовало только второй строке таблицы?
не подходит, должна выделяться в принципе любая строка, содержащая в одном из столбцов искомую фразу, без привязки к концу таблицы. а как в рег выражениях пишется конструкция, которая например запрещает в промежутке символов .+ определенные наборы символов? например такой "семантический" шаблон /<tr>.+(но чтоб между вами не было других <td>)<td>искомая фраза.+?<\/tr>/is
Благодарю. а как доработать ваш пример, чтобы регвыражение захватывало полностью код строки таблицы, т.е. от <tr> до </tr>? Структура реальной таблицы следующая: <table> <tr> <td>1/1</td> <td>фраза</td> </tr> <tr> <td>2/2</td> <td>искомая фраза</td> </tr> </table>
А генератора регулярных выражений нет ни у кого ссылки? или где что скачать? Ну тоже самое только обратно
Вот такое выражение помогло: Код (Text): /<tr(?!.+?<tr).+?искомая фраза.+?<\/tr>/is но оно уже не действует на строке, содержащей html-код таблицы вида: Код (Text): <table> <tr> <td>1/1</td> <td>фраза</td> </tr> <tr> <td>2/2</td> <td>искомая фраза</td> </tr> <tr> <td>2/2</td> <td>еще одна строка</td> </tr> </table> кто-нибудь скажет, почему?
вот такой шаблон посоветовали Код (Text): ~<tr\b[^<>]*+>\s*+<td\b[^<>]*+>[^<>]*+</td>\s*+<td\b[^<>]*+>(искомая фраза[^<>]*+)</td>\s*+</tr>~i работает