我想用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”,因此不应更改它。它适用于所有元音。
答案 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!"