Как в php получить последний 1 или 2 символа с конца строки до согласной буквы?

Пользователь

от stanford_mosciski , в категории: PHP , год назад

Как в php получить последний 1 или 2 символа с конца строки до согласной буквы?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от carlo.cummerata , год назад

@stanford_mosciski 

Можно воспользоваться регулярными выражениями и функцией preg_match():

1
2
3
$string = 'example';
preg_match('/([aeiouyAEIOUY]?[^aeiouyAEIOUY]*){1,2}$/', $string, $matches);
$last_symbols = $matches[0];


В данном примере мы передаем в функцию preg_match() регулярное выражение, которое ищет 1 или 2 символа с конца строки до первой согласной буквы (не гласной). Если в строке слова нет согласных, то вернется пустой результат.


Объяснение регулярного выражения:

  • [aeiouyAEIOUY]? - символы гласных букв, которые могут находиться в конце слова (буква может отсутствовать). В квадратных скобках указываются разрешенные символы, знак вопроса означает, что символ может быть или не быть.
  • [^aeiouyAEIOUY]* - символы, которые находятся после гласной буквы (может отсутствовать), но до согласной (не гласной). В квадратных скобках указываются запрещенные символы, знак звездочки означает, что символы могут отсутствовать или быть в любом количестве.
  • ([aeiouyAEIOUY]?[^aeiouyAEIOUY]*){1,2} - группа символов, содержащая гласную букву и символы, которые следуют за ней до согласной (не гласной) буквы. Внутри группы комбинация из гласной буквы и символов указана с помощью квадратных скобок. {1,2} означает, что такая группа может встретиться 1 или 2 раза.


Функция preg_match() возвращает результат в массиве $matches, где нулевой элемент содержит найденную строку символов.