За последние 24 часа нас посетили 35325 программистов и 1814 роботов. Сейчас ищут 816 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем php_user, 24 май 2014.

  1. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Есть текст:

    "Это проверочный Иван35лет текст. Этот символ Иван55лет тут иногда Иван47лет встречается".

    Мне нужно заменить слово "лет" на "years", т.е. получить:

    "Это проверочный Иван35years текст. Этот символ Иван55years тут иногда Иван47years встречается".

    Понимаю что как-то так:
    Код (PHP):
    1. $text= "Это проверочный Иван35лет текст. Этот  символ Иван55лет тут иногда Иван47лет встречается";
    2. preg_replace("/???/", "years", $text);
    3.  
    Но что вместо "???"
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    str_relpace
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    кодировка в скрипте какая? кириллица очень деликатная вещь ))) для восьмибитных кодировок надо выставить правильную локаль до регулярки. для utf-8 надо указывать модификатор u: '/хххххх/u'
     
  4. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Кодировка UTF-8. Немного поясню свой вопрос- мне нужно по регулярному выражению найти все варианты и в них заменить часть найденного выражения

    Добавлено спустя 43 секунды:
    т.е. заменить подстроку в подстроке- и так для всего текста
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Юзай условные подмаски
     
  6. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Ну, если не смотреть на кириллицу, то
    preg_replace('~(Ivan\d+)let~', '$1'.'years', $text);
     
  7. shpok

    shpok Активный пользователь

    С нами с:
    20 июн 2012
    Сообщения:
    23
    Симпатии:
    0
    Если не обязательно использовать рег.выражения, то можно решить так :
    Код (Text):
    1.   $text= "Это проверочный Иван35лет текст. Этот  символ Иван55лет тут иногда Иван47лет встречается";
    2.         $pattern = array('лет' => 'years');
    3.         $newText = strtr($text, $pattern);    
    4.         echo $newText;