我想用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”,所以不应该改变它。它将适用于所有元音。
发布于 2019-01-31 00:41:20
可能还有您没有描述的其他情况,但是使用正则表达式来完成您所说的事情并不难。下面进行了所需的替换,除非前面有元音。
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!"https://stackoverflow.com/questions/54444102
复制相似问题