Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 17:05   #1
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию ошибка в регулярке

В общем сам то пишу на Delphi и там регулярками пользуюсь умело.
Надо вот написать на php скриптик один - в общем вот текст на странице к примеру:
Код:
11 + 28 = ?
+ в HTML это плюс.
Т.е. надо выдрать 11, потом 28 и все это сложить.

Регулярку юзаю такую:
Код:
(\d{1,2}) + (\d{1,2})
Вот кусок скрипта:
Код:
$result = curl_exec($ch);
curl_close($ch);
preg_match("(\d{1,2}) + (\d{1,2})", $result, $match);
echo $match;
echo $match[0];
echo $match[1];
Собственно я открываю CMD, cd c:\, php 1.php и он мне выдает простую пустую строку.

Подскажите пожалуйста где я тут накосячил
kakawkin вне форума Ответить с цитированием
Старый 10.08.2011, 17:19   #2
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

В общем чето непойму как >.<
Вот кусок из которого надо выдернуть:
Код:
<td class="field">27 + 27 = ?<br /><span class="error">
надо выдернуть собственно одно 27, потом второе 27 и сложить их
kakawkin вне форума Ответить с цитированием
Старый 10.08.2011, 17:47   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Код:
$s='<td class="field">27 + 27 = ?<br /><span class="error">';
$a=explode("+",$s);
$b=explode(">",$a[0]);
$c=explode(" =",$a[1]);
$b=trim($b[1]);
$c=trim($c[0]);
echo $b+$c;
motorway вне форума Ответить с цитированием
Старый 10.08.2011, 18:04   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Или так:
Код:
$s='<td class="field">11 + 55 = ?<br /><span class="error">';
$q=str_replace("?","",str_replace("=","",str_replace(" ","",strip_tags($s))));
eval("\$x=$q;");
echo $x;
motorway вне форума Ответить с цитированием
Старый 10.08.2011, 18:37   #5
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

блин, ступил.

На сервере вот так строка выглядит:
Код:
<td class="field">35 + 77 = ?<br />
35 - первое число
77 - второе число

Последний раз редактировалось kakawkin; 10.08.2011 в 18:42.
kakawkin вне форума Ответить с цитированием
Старый 10.08.2011, 19:01   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ну а что, попробовать код для такой строки не судьба? Всё будет работать также
motorway вне форума Ответить с цитированием
Старый 10.08.2011, 19:12   #7
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

+ это служебный символ для регулярки. нужно перед ним ставить \. вот так должно быть:
(\d{1,2}) \+ (\d{1,2})
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 10.08.2011, 20:01   #8
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

блин, форум режит.
Там в общем на странице не знак плюс а вот это только без пробелов:"& # 4 3 ;"
т.е. за место знака + - html код

Я писал для него регулярку но ругается на символ & - вот в этом и проблема у меня именно
kakawkin вне форума Ответить с цитированием
Старый 10.08.2011, 20:04   #9
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Ну тогда вот так:
Код:
>(\d{1,2}) +.*? +(\d{1,2}) +=
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44
Как указать в регулярке............ Adamant PHP 12 25.03.2008 10:11