Я хотел бы написать регулярное выражение, которое разбивает слово на cvc (согласные/гласные/согласные) или vcv-группы. Что-то похожее на ngrams, но с использованием воев и согласных. Вот пример:Как извлечь группы согласных/гласных из слова?
helloworld
будет производить следующие группы:
hell
ello
llow
owo
world
Я написал следующее регулярное выражение:
(?=(([aeiouy]+|[^aeiouy]+){3}))
Первая часть ([aeiouy]+|[^aeiouy]+){3}
захвата либо VCV или CVC группа , остальное (?=())
- положительное утверждение. Она не работает, как ожидалось:
hell
ello
llow
low //owo expected
Так эта часть '(?: [AEIOU] + | [б-dfghj-np- tv-z] +) 'заставит двигатель потреблять группу воялей или согласных перед сопоставлением следующей группы cvc или vcv. Кажется, я понял. Вопрос: лучше ли работать с согласными так, как вы это делали (явно указывая их) против того, как я это сделал (говоря, что это все, но не гласные)? – tigrou
@tigrou: Я не думаю, что есть большая разница. –