Меняем эй, эй, эй на умлаут - PullRequest
0 голосов
/ 30 января 2019

Я бы хотел изменить ae, oe, ue на ä, ö, ü с помощью gsub (), но только когда нет гласной (a, e, i, o, u), предшествующей.Я придумал это до сих пор:

umlaut_conversion <- function(text){
  text <- text %>%
  {gsub('ae','ä',.)} %>%
  {gsub('oe','ö',.)} %>%
  {gsub('ue','ü',.)}  
}

umlaut_conversion('Neue Woerter!')

Это имеет следующий результат:

Neü Wörter!

Но вывод, который мне нужен:

Neue Wörter!

Итакиз-за гласного 'e' перед 'ue' в 'Neue' его не следует менять.И это будет работать для всех гласных.

1 Ответ

0 голосов
/ 30 января 2019

Могут быть и другие случаи, которые вы не описали, но нетрудно сделать то, что вы сказали, с помощью регулярного выражения.Следующее делает желаемые замены за исключением , когда ему предшествует гласная.

umlaut_conversion <- function(text){
  text <- text %>%
  {gsub('(^|[^aeiou])ae','\\1ä',., perl=T)} %>%
  {gsub('(^|[^aeiou])oe','\\1ö',., perl=T)} %>%
  {gsub('(^|[^aeiou])ue','\\1ü',., perl=T)}  
  text
}

umlaut_conversion('Neue Woerter!')
[1] "Neue Wörter!"
...