Помогите составить регулярку

Тема в разделе "Как сделать...", создана пользователем QuZ, 18 фев 2012.

  1. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    Добрый день.
    Не могли бы помочь сделать регулярку, которая брала бы выражение с начала до последней русской буквы встречающейся в данной фразе.

    Мама пошла гулять на улицу и купила barby. - Мама пошла гулять на улицу и купила
    Мама пошла гулять на улицу и купила barby дочке - Мама пошла гулять на улицу и купила barby дочке
    Мама пошла гулять на улицу и купила barby девочке с сада №8 - Мама пошла гулять на улицу и купила barby девочке с сада

    Спасибо.
     
  2. BaziliX

    BaziliX Постоялец

    Регистр.:
    2 авг 2007
    Сообщения:
    85
    Симпатии:
    12
    QuZ нравится это.
  3. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    /.*[а-яА-Я]+/
    =>
    Мама пошла гулять на улицу и купила barby
    Мама пошла гулять на улицу и купила barby дочке
    Мама пошла гулять на улицу и купила barby девочке с сада №8
    =>
    Всего совпадений 3
    1 : Мама пошла гулять на улицу и купила
    2 : Мама пошла гулять на улицу и купила barby дочке
    3 : Мама пошла гулять на улицу и купила barby девочке с сада
     
    QuZ нравится это.
  4. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    Что за день.. 2-ва респекта.
    Не совсем, но сервис - отличный..

    А сюда респект за маленькую, но хорошо работающую регулярку.
     
  5. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    А как внести это в переменную?) Я обычно вырезал лишнее , а тут - наоборот ( $newstr = preg_replace('/.*[а-яА-Я]+/', '',$string); )
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    используй preg_match или preg_match_all а потом вытягивай из массива в переменную
    PHP:
     preg_match('/.*[а-яА-Я]+/'$string,$match);
    $newstr $match[0]; 
     
  7. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    Да, понял. Про то, что на выхде массив - забыл...
    Спасибо
     
  8. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    Парни.. А вот с такой регуляркой как вам? Выбрать из строчки все что в скобочка (), если там нет букв и миниум 2-ве цифры идущие вместе..
     
  9. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    PHP:
    preg_match_all('/(?=\([^\(]*\d{2,}[^\(]*\))\(([^a-zA-Zа-яА-Я]+)\)/U',$text,$res); print_r($res[1]);
    1 проверка \d{2,} утверждением
     
    QuZ нравится это.
  10. QuZ

    QuZ Постоялец

    Регистр.:
    18 июл 2009
    Сообщения:
    74
    Симпатии:
    49
    Отлично, спасибо.