Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RegExp - извлечь данные между 2 выражениями, Извлечь данные, например, из тегов 
V
    Опции темы
EdgarJ
Дата 18.5.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.1.2006

Репутация: нет
Всего: нет



Здравствуйте , товарищи. 

Проблемка такая. Есть строка "a+x+b", где а и б подстроки , которые я могу полностью описать используя регулярные выражения, но мне нужен только Х. (+ это просто для обозначения конкетации). 

Я пробовал экспериментировать по всякому, используя решение найденное в и-нете - "<td[^>]*>([^<]*)<\/td>". Данное решение выдирает инфу между тэгами td, но я не понимаю принцип работы этого выражения, может кто то может обяснить.

Если говорить о более конкретном примере, то вот 

Код

<?php 
header("Content-type: text/plain; charset=UTF-8");


$string = "<td colspan=\"3\">Full name  <font color=\"#d916de\">John Smith</font></td>";
$result = array ();
$pattern = "/<td[^>]*>([^<]*)<\/td>/";
$timesMatched = 0;

$timesMatched = preg_match($pattern,$string,$result);
echo $string;
echo "\n";
if ($timesMatched > 0)
    {
        print_r($result);
    }
else
    {
        echo "nerabotajet";
    }


Я полагаю из за того, что после открывающего тэга следует colspan, данное решение и не работает. Так как принцип его работы для меня окутан в тумане, сам поправить не могу.
Конечно можно сплитить используя или заменять используя тот же regexp, но хочется всё таки понять, как сделать таким методом. smile
PM MAIL   Вверх
ksnk
Дата 18.5.2009, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



$pattern = "/<td[^>]*>(.*?)<\/td>/";



Это сообщение отредактировал(а) ksnk - 18.5.2009, 16:43


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
EdgarJ
Дата 18.5.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 3.1.2006

Репутация: нет
Всего: нет



Угу, спасибо. Уже разобрался, что в массиве результатов будет сабпаттерн из скобок.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.