Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярные выражения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Грачи прилетели
Отправлено: 28 Мая, 2016 - 18:27:21
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Добрый день!

Прошу помощи клуба

Есть строка $str

Надо в этой строке проверить - есть ли там первое вхождение символа № и если есть, взять значение до первого пробела.

Например "текст ; % %текст №11-1111 текст" Вот мне отсюда надо забрать
№11-1111
если вхождения нет, то сказать, что нет, если есть, то присвоить переменной значение
$s = №11-1111

Спасибо
 
 Top
Строитель Модератор
Отправлено: 28 Мая, 2016 - 18:38:44
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Грачи прилетели, вроде бы так
PHP:
скопировать код в буфер обмена
  1. $str =  'текст ; % %текст №11-1111 текст';
  2. $patt = '~№\d+-\d+~';
  3. preg_match($patt, $str, $arr);
  4.  
  5. echo '<pre>'; print_r($arr);
  6. /*
  7. Array
  8. (
  9.     [0] => №11-1111
  10. )
  11. */
 
 Top
Грачи прилетели
Отправлено: 28 Мая, 2016 - 18:47:41
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Спасибо за помощь.

А если идти по такому пути?

PHP:
скопировать код в буфер обмена
  1. $findme   = '№';
  2. $pos = strpos($str, $findme);
  3.  
  4. if ($pos === false) {
  5.     echo "Строка '$findme' не найдена в строке '$str'";
  6. } else {
  7.     echo "Строка '$findme' найдена в строке '$str'";
  8. /*
  9. тут надо дойти до первого пробела и вырезать значение
  10. */
  11. }
  12.  


Правильнее Ваш вариант?

(Отредактировано автором: 28 Мая, 2016 - 18:48:01)

 
 Top
Строитель Модератор
Отправлено: 28 Мая, 2016 - 18:55:17
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Грачи прилетели пишет:
Правильнее Ваш вариант?
Я думаю, оба варианты правильные. Но если можно обойтись без регулярок, то лучше юзать strpos()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB