R:Gsub替换模式,在替换中跳过一个字符
我想在R中使用gsub()函数进行简单替换。请参见示例:R:Gsub替换模式,在替换中跳过一个字符,r,replace,gsub,R,Replace,Gsub,我想在R中使用gsub()函数进行简单替换。请参见示例: #I want: Huiswaard 2 Oost Huiswaard 1 Zuid Huiswaard 2 West #To become: Huiswaard-2-Oost Huiswaard-1-Oost Huiswaard-2-Oost 通过伟大的试错法,我尝试了这一点: data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-.-", df) data <- gsub
#I want:
Huiswaard 2 Oost
Huiswaard 1 Zuid
Huiswaard 2 West
#To become:
Huiswaard-2-Oost
Huiswaard-1-Oost
Huiswaard-2-Oost
通过伟大的试错法,我尝试了这一点:
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-.-", df)
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-.*-", df)
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-(.)-", df)
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-\\(\\)-", df)
有人知道如何使用gsub跳过替换参数中的字符吗?在正则表达式中,您可以使用括号分组并使用
\\1
data <- gsub('Huiswaard\\s(\\d)\\s>*', "Huiswaard-\\1-", df)
data
[1] "Huiswaard-2-Oost" "Huiswaard-1-Zuid" "Huiswaard-2-West"
我使用此备忘单帮助我理解正则表达式:在正则表达式中,您可以使用括号分组,并使用
\\1
data <- gsub('Huiswaard\\s(\\d)\\s>*', "Huiswaard-\\1-", df)
data
[1] "Huiswaard-2-Oost" "Huiswaard-1-Zuid" "Huiswaard-2-West"
我使用此备忘单帮助我理解正则表达式:只需执行gsub(“\\s”,“-”,data)看起来您只是想用
-
替换空格。如果是这样,@onyanbu的评论将解决您的问题。如果没有,您需要在您的问题中提供更多信息。谢谢@onyanbu,我的数据示例没有那么清楚,其中还有其他数据也受该代码的影响(例如“-D-e-H-o-r-n--n-o-o-r-D-”gsub(x,pattern=“^(huisward)\\s(\\D+)\\s(\\w+”),replacement=“\\1-\\2-\\3”)
谢谢你解决了这个问题@Martinschmelzer只需执行gsub(“\\s”,“-”,data)看起来您只是想用-
替换空格。如果是这样,@onyanbu的评论将解决您的问题。如果没有,您需要在您的问题中提供更多信息。谢谢@onyanbu,我的数据示例没有那么清楚,其中还有其他数据也受该代码的影响(例如“-D-e-H-o-r-n--n-o-o-r-D-”gsub(x,pattern=“^(huisward)\\s(\\D+)\\s(\\w+”),replacement=“\\1-\\2-\\3”)
谢谢你解决了这个问题@马丁施梅尔泽
data <- gsub('Huiswaard\\s(\\d)\\s\\w+', "Huiswaard-\\1-Oost", df)
data
[1] "Huiswaard-2-Oost" "Huiswaard-1-Oost" "Huiswaard-2-Oost"