Python, Regular expressions
Найти в заданном тексте на русском все слова, в которых две гласные стоят подряд, а после этого слова идёт слово, в котором не больше 3 согласных. Как это сделать при помощи регулярных выражений в python?
Ответы (1 шт):
Я нашел регулярное выражение. Не кидайте в меня помидорами если оно слишком длинное, я очень редко сталкивался с регулярными выражениями.
Вот оно:
[а-яА-Я]*[аоуыэяёюиеАОУЫЭЯЁЮИЕ]{2}[a-яА-Я]* [аоуыэяёюиеАОУЫЭЯЁЮИЕ]*[^аоуыэяёюиеАОУЫЭЯЁЮИЕ]?[аоуыэяёюиеАОУЫЭЯЁЮИЕ]*[^аоуыэяёюиеАОУЫЭЯЁЮИЕ]?[аоуыэяёюиеАОУЫЭЯЁЮИЕ]*[^аоуыэяёюиеАОУЫЭЯЁЮИЕ]?[аоуыэяёюиеАОУЫЭЯЁЮИЕ]*
Объяснение: сначала идут любые буквы (может быть и ноль, это для тех случаев если две гласные подряд стоят в начале или в конце, затем две гласные подряд, затем опять любое количество букв, в том числе и ноль. После этого идет пробел, любое количество гласных, одна или ноль (для того, чтобы согласных могло быть меньще трёх) согласных (я сделал согласные, инвертировав гласные, потому что мне лень писать 23 буквы 2 раза), любое количество гласных, еще одна согласная, любое количество гласных, еще согласная, любое количество гласных. После этого согласных нет, поэтому при четырёх согласных строка не пройдет тест (на regex101.com прошла но вся часть строки от четвертой согласной во втором слове отсеклась).