Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > поиск заданого значения в строке с помошью regexp


Автор: godvinn 26.8.2009, 17:16
Есть у меня строка:
$str = '12,455,88,999,99,45,33,';
как организовать поиск чтобы находило только соответствующее значения.

То есть если нам надо найти цифру 99 то чтобы не возвращало число 999. Это надо сделать с помощью регулярных выражений.  smile   
 

Автор: enof 26.8.2009, 17:26
Код

#(,|^)99(,|$)#

Автор: patap 26.8.2009, 17:33
Код

<?php
  $num = 99;
  $pat = '#(?:,|^)(' . $num . ')(?:,|$)#';
  preg_match_all($pat, '12,455,88,999,99,45,33,99', $match);
  
  print_r($match[1]);
?>


Автор: godvinn 26.8.2009, 17:34
Ну это только будет работать для 99.

Вообщем мне нужно создать такую функцию которая принимает значение и если есть такое в этой строке то оно возвращает true и соответственно если нет то false;

f
Код

unction search($num)
{
    if (preg_match("регулярное выражение ", ... ))
  {
     return true;
  }
else 
{
return false;
}
}

Автор: patap 26.8.2009, 17:37
Цитата

Ну это только будет работать для 99.


чего это  вдруг?

Автор: NewDima 26.8.2009, 17:38
godvinn, enof конкретное решение на конкретный твой вопрос. Разве так тяжело переделать решение под более общую задачу?

Автор: enof 26.8.2009, 17:38
Код

function search($num){
    if(preg_match('#(,|^)'.preg_quote($num, '#').'(,|$)#', '12,455,88,999,99,45,33,')) return true;
    return false;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)