@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, где нулевой элемент содержит найденную строку символов.