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]   

> Без описания
vanicon
Отправлено: 30 Марта, 2012 - 19:34:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Есть текст:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  Ищет в строке @subject.text все совпадения с шаблоном pattern и помещает результат в массив @matches в порядке, определяемом @комбинацией_флагов flags.
  2.  

И из него нужно выбрать слова: @subject.text, @комбинацией_флагов и @matches
Есть вот такая регулярка:, она работает и выбирает тока слово matches, комбинацией и subject, окончание слова с символом @ должен быть любой символ кроме _ и точки, а у меня в регулярки окончание после любого символа.
Помогите переделать регулярку.


-----
Так было, так есть и так будет
 
 Top
dadli
Отправлено: 01 Апреля, 2012 - 17:44:07
Post Id



Посетитель


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


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




vanicon
если правилно понял, вам надо вибрать все слова, которие начинается на символе @ и кончается на всех символах кроме _ и точка. если так то

PHP:
скопировать код в буфер обмена
  1. preg_match_all("#@[^\s]+[^\._]\s*#",$str,$mas);
  2.  
  3. echo "<pre>";
  4. var_dump($mas);
  5. echo "</pre>";

(Отредактировано автором: 01 Апреля, 2012 - 17:51:33)

 
 Top
vanicon
Отправлено: 07 Апреля, 2012 - 13:09:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Цитата:
если правилно понял, вам надо вибрать все слова, которие начинается на символе @ и кончается на всех символах кроме _ и точка. если так то

Да правильно, но я немного переделал его и получил вот это:
, вроде работает как нужно


-----
Так было, так есть и так будет
 
 Top
dadli
Отправлено: 09 Апреля, 2012 - 15:34:09
Post Id



Посетитель


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


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




извиняюс, я бил не прав, так должен работать хорошо
PHP:
скопировать код в буфер обмена
  1. $str = 'ASD @es. работать  @sds_ @sdd';
  2. preg_match_all("#@[^\s]+#",$str,$mas);
  3. $mas = preg_grep("#(\.|\_)$#",$mas[0],PREG_GREP_INVERT);
  4.  
  5. echo "<pre>";
  6. var_dump($mas);
  7. echo "</pre>";
 
 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