将ae,oe和ue更改为变音符

时间:2019-01-30 15:32:16

标签: r gsub

我想用gsub()将ae,oe,ue更改为ä,ö,ü,但前提是之前没有元音(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!

因此,由于“ Neue”中“ ue”前面的元音“ e”,因此不应更改它。它适用于所有元音。

1 个答案:

答案 0 :(得分:0)

您可能还没有描述其他情况,但是用正则表达式表达您的想法并不难。当元音在前时,以下内容将进行所需的替换 except

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!"