[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на плюс и минус
UninstallZX
Добрый день. Помогите пожалуйста написать регулярное выражение для таких строк (Нужно проверять на наличие +/-):
Курс с 25.06: 8.0150 (+0.0050)
Курс с 25.06: 8.0150 (-0.0050)
DedMorozzz
if(preg_match('#^Курс с [0-9]{1,2}\.[0-9]{1,2}\: [0-9\.]+ \((+|-)[0-9\.]+\)$#uis',$text)) echo "YES!";

Проверь такой вариант, скорее всего подправить надо будет, нету времени проверять

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
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
обновил предыдущий пост, скобки как спец символы шли

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
Тоже самое...
DedMorozzz
ок, ща разберусь...

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
DedMorozzz
так, скажи какова цель. Т.е. что хочешь поулчить

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
UninstallZX
Нужно проверить. То есть если в строке есть плюс - вывести "+ есть", а если вместо плюса - минус, вывести "- есть"
Winston
Оно ?
$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
так ты ж не строку подаёшь, а весь текст. Иль сделать так:
"текст твой" - есть
"текст твой" - есть
"текст твой" + есть
"текст твой" ПУСТО(если ничего нету)?

Так же насчёт ошибки - то у тебя проблема, у меня пошло норм всё
Вот код:
$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
PHPprogramer, огромное спасибо - работает.
Winston
Цитата (DedMorozzz @ 28.06.2011 - 13:24)
\((+|-)

Цитата (DedMorozzz @ 28.06.2011 - 13:48)
то у тебя проблема, у меня пошло норм всё

Проблема была в не экранированом +
DedMorozzz
ладно уж, написал с заменой...пусть будет

$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 это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.