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

Тема в разделе "Регулярные выражения", создана пользователем sof, 10 окт 2015.

Модераторы: xpert13
  1. sof

    sof Создатель

    Регистр.:
    17 фев 2013
    Сообщения:
    27
    Симпатии:
    12
    Ребят, есть такая регулярка [^\W].*(а|я|у|и)(?=\W) но в ней вот незадача такая вот проблема если одно слово к примеру юля то регулярка не срабатывает, если несколько слов каждая с новой строки к примеру:
    маша
    юля
    света
    дарья
    карина

    то распознает все кроме последнего.

    У меня в принципе будет всего одно имя нужно чтобы регулярка ее распознавала. Помогите пожалуйста...
     
  2. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    249
    Симпатии:
    143
    А не пробовал проверять на соответствие не всю строку, а только последний ее символ? И в регулярке будет достаточно указать допустимые символы.
     
  3. sof

    sof Создатель

    Регистр.:
    17 фев 2013
    Сообщения:
    27
    Симпатии:
    12
    Попробовал в таком случае вообще не работает
     
  4. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    249
    Симпатии:
    143
    Как это?
    PHP:
    preg_replace('[аяуи]',substr($str, -1));
    Где $str входящая строка.
     
  5. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    У имени последнего в списке нет символа переноса \r и (или) \n, поэтому оно не соответствует выражению.