UninstallZX
28.06.2011 - 14:14
Добрый день. Помогите пожалуйста написать регулярное выражение для таких строк (Нужно проверять на наличие +/-):
Курс с 25.06: 8.0150 (+0.0050)
Курс с 25.06: 8.0150 (-0.0050)
DedMorozzz
28.06.2011 - 14:24
if(preg_match('#^Курс с [0-9]{1,2}\.[0-9]{1,2}\: [0-9\.]+ \((+|-)[0-9\.]+\)$#uis',$text)) echo "YES!";
Проверь такой вариант, скорее всего подправить надо будет, нету времени проверять
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
28.06.2011 - 14:26
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 49 in Z:\home\test1.ru\www\index.php on line 17
DedMorozzz
28.06.2011 - 14:28
обновил предыдущий пост, скобки как спец символы шли
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
28.06.2011 - 14:29
Тоже самое...
DedMorozzz
28.06.2011 - 14:34
ок, ща разберусь...
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
DedMorozzz
28.06.2011 - 14:39
так, скажи какова цель. Т.е. что хочешь поулчить
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
28.06.2011 - 14:40
Нужно проверить. То есть если в строке есть плюс - вывести "+ есть", а если вместо плюса - минус, вывести "- есть"
Winston
28.06.2011 - 14:46
Оно ?
$text = "Курс с 25.06: 8.0150 (+0.0050)
Курс с 25.06: 8.0150 (-0.0050)";
if(preg_match("/^Курс\s*с\s*[0-9]{1,2}\.[0-9]{1,2}:\s*[0-9\.]+\s*\((\+|-)[0-9\.]+\)$/isu", $text, $mt))
echo "Есть " . $mt[1];
else
echo "Нету !";
DedMorozzz
28.06.2011 - 14:48
так ты ж не строку подаёшь, а весь текст. Иль сделать так:
"текст твой" - есть
"текст твой" - есть
"текст твой" + есть
"текст твой" ПУСТО(если ничего нету)?
Так же насчёт ошибки - то у тебя проблема, у меня пошло норм всё
Вот код:
$a = 'Курс с 25.06: 8.0150 (+0.0050)
Курс с 25.06: 8.0150 (-0.0050)';
if(preg_match_all('#Курс с [0-9]{1,2}\.[0-9]{2}\: [0-9\.]+ \((\+|-)[0-9\.]+\)#is',$a,$matches));
echo "<pre>";
print_r($matches);
echo "</pre>";
Цитата |
Array ( [0] => Array ( [0] => РљСѓСЂСЃ СЃ 25.06: 8.0150 (+0.0050) [1] => РљСѓСЂСЃ СЃ 25.06: 8.0150 (-0.0050) )
[1] => Array ( [0] => + [1] => - )
) |
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
28.06.2011 - 14:48
PHPprogramer, огромное спасибо - работает.
Winston
28.06.2011 - 14:50
Цитата (DedMorozzz @ 28.06.2011 - 13:24) |
\((+|-) |
Цитата (DedMorozzz @ 28.06.2011 - 13:48) |
то у тебя проблема, у меня пошло норм всё |
Проблема была в не экранированом +
DedMorozzz
28.06.2011 - 14:52
ладно уж, написал с заменой...пусть будет
$a = 'Курс с 25.06: 8.0150 (+0.0050)
Курс с 25.06: 8.0150 (-0.0050)';
$a = preg_replace('#(Курс с [0-9]{1,2}\.[0-9]{2}\: [0-9\.]+ \((\+|\-)[0-9\.]+\))#isu','$1 $2 - есть',$a);
echo $a;
Цитата |
Курс с 25.06: 8.0150 (+0.0050) + - есть Курс с 25.06: 8.0150 (-0.0050) - - есть |
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.