Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как написать регулярное выражение
 
 автор: Чайка   (16.10.2007 в 16:52)   письмо автору
 
 

Как написать регулярное выражение
Чтоб находило это:
двор+улица;
или это:
улица;
или это:
двор;

   
 
 автор: kasmanaft   (16.10.2007 в 17:50)   письмо автору
 
   для: Чайка   (16.10.2007 в 16:52)
 

Откуда это нужно находить и зачем?

   
 
 автор: Чайка   (16.10.2007 в 18:02)   письмо автору
 
   для: kasmanaft   (16.10.2007 в 17:50)
 

Откуда обсуждалось здесь

http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=44306&page=1

зачем? Чтобы производить анализ

   
 
 автор: kasmanaft   (16.10.2007 в 18:17)   письмо автору
 
   для: Чайка   (16.10.2007 в 18:02)
 

То есть нужно просто узнать, есть ли в тексте слова "улица+двор", "улица" или "двор" ?
В таком случае, наверное, удобно будет воспользоваться чем-то вроде stristr()

if (stristr($text, "двор") && stristr($text, "улица"))
{
  ***
}

// рег. выражениями будет что-то вроде
if (preg_match("/^(?=.*улица)(?=.*двор)/is", $text))
{
   ***
}

   
 
 автор: Чайка   (16.10.2007 в 18:21)   письмо автору
 
   для: kasmanaft   (16.10.2007 в 18:17)
 

Большое человеческое спасибо!

А что означает запись ?=.*

   
 
 автор: SHAman   (17.10.2007 в 12:38)   письмо автору
 
   для: Чайка   (16.10.2007 в 18:21)
 

?= - это опережающая проверка.

Вроде, неплохие статьи. Во второй как раз есть про "?="
http://www.phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2

   
 
 автор: SHAman   (17.10.2007 в 12:34)   письмо автору
 
   для: kasmanaft   (16.10.2007 в 18:17)
 

ИМХО, проще так:

if (preg_match("/улица|двор/i", $text))
    {что-то из них есть в строке}

   
 
 автор: kasmanaft   (17.10.2007 в 15:16)   письмо автору
 
   для: SHAman   (17.10.2007 в 12:34)
 

Ну просили вообще-то не "что-то", а "и то, и то" ;)

   
 
 автор: SHAman   (18.10.2007 в 13:17)   письмо автору
 
   для: kasmanaft   (17.10.2007 в 15:16)
 

На сколько я понял, нужно проверять на наличие в строке слов "улица, двор". Причем считать успешной проверку, если есть либо одно из этих слов, либо оба. Я не правильно понял условие?

   
 
 автор: kasmanaft   (18.10.2007 в 15:11)   письмо автору
 
   для: SHAman   (18.10.2007 в 13:17)
 

Не знаю.. я понял что, если есть оба слова, то нужно делать что-то одно, если есть одно из них, то другое.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования