Delphi. Багнутый модуль RegExpr... Суть бага: Есть регулярка: <ucode>(.*)</ucode> Сам текст: В результате мы получаем вот так: Может найдётся верная регулярка для "<td align="left">1</td>" и удастся обойти баг! Спасибо!
Используй preg_match_all (php) или мод для проверки всех вхождений Т.к. используется проверка для одного вхождения, скрипт выбирает самые крайние параметры шаблона
Ну это вообще-то раздел WEB, но даже если юзаешь Делфи, используй мод либо для выборки всех значений, либо для выборки первого вхождения
-Hormold-, я создавал эту тему, и ТЫ САМ на этот вопрос отвечал. http://forum.antichat.ru/thread119447.html
вот <tr class="te70"><td>Любой текст</td><td>Это надо узнать</td></tr> мне надо чтобы там где любой текст было например (.*) а там где надо узнать мне надо ети строчки потом вывести. какая регулярка тут нужна?
сделайте чтобы так было <tr class="te70"><td>Manufacturer, model (модель телефона)</td><td>ТУТ ТЕКСТкакойй надо достать</td></tr>
Code: <tr class="te70"><td>(.*)<\/td><td>(.*)<\/td> Первый карман - "Любой текст" Второй - "Это надо узнать" Вообще достаточно <td>(.*?)<\/td> но тут важно парсить только строчки указаного вида (т.е. только <tr class="te70"><td>Любой текст</td><td>Это надо узнать</td></tr>) Причем "Любой текст" не совсем верно думаю, потому как если в тексте будут </td> то эта регулярка не сработает. И разбор чуть не такой при использовании короткой регулярой.
PHP: <?php $str = '<tr class="te70"><td>Любой текст</td><td>Это надо узнать</td></tr>'; $regexp = '/<tr[^>]*><td[^>]*>.*<\/td><td[^>]*>(.*)<\/td><\/tr>/'; preg_match_all($regexp, $str, $match); print_r($match); ?> Вот устойчивая регулярка выведет в $match[1] нужную "Это нада узнать"
чёт у меня башка ваще не варит =\\ есть строка Code: <input type="hidden" name="inviter" value=""><input type="hidden" name="token" value="67f21d69aa231" /> есть регулярка Code: <input.*?value="(.*?)".*?name="(.+?)".*?>#is в результате он находит Code: [1] => Array ( [0] => ) [2] => Array ( [0] => token ) Не могу понять где я ошибся .... почему он НАХОДИТ чтото ... по идеи не должно же =\\
Порядок следования value и name в регулярном выражении не соответствует тексту PHP: <?php $string = '<input type="hidden" name="inviter" value=""><input type="hidden" name="token" value="67f21d69aa231" />'; $regexp = '/<input.*?name="(.+?)".*?value="(.*?)".*?>/is'; preg_match_all($regexp, $string, $match); print_r($match); ?> Выдаст Code: Array ( [0] => Array ( [0] => <input type="hidden" name="inviter" value=""> [1] => <input type="hidden" name="token" value="67f21d69aa231" /> ) [1] => Array ( [0] => inviter [1] => token ) [2] => Array ( [0] => [1] => 67f21d69aa231 ) )
FireFenix млять ты читал что я написал ? прочти 10 раз ... я написал что НЕ ДОЛЖНО НАХОДИТЬ ... mailbrush а это тут причём .. порядок следования не соответствует ... так что это тут не причём ..
Упс..... наверное оно считывает 2 тега как 1 большой тег с кучей левого текста. Можно край тега ограничить [^>]*> и всё будет намана