R: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('Huiswaard\\s.\\s>*', "Huiswaard-.*-", df)
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-(.)-", df)
data <- gsub('Huiswaard\\s.\\s>*', "Huiswaard-\\(\\)-", df)

都行不通。我最终得到这样的东西:

Huiswaard-.-West

有没有人知道如何使用 gsub 跳过替换参数中的字符?

贾斯布纳

在正则表达式中,您可以使用括号和反向引用进行分组 \\1

data <- gsub('Huiswaard\\s(\\d)\\s>*', "Huiswaard-\\1-", df)
data
[1] "Huiswaard-2-Oost" "Huiswaard-1-Zuid" "Huiswaard-2-West"

如果您想更改后缀,您还可以捕获第二个单词,\\w+其中将捕获空格后的 1 个或多个单词字符。:

data <- gsub('Huiswaard\\s(\\d)\\s\\w+', "Huiswaard-\\1-Oost", df)
data
[1] "Huiswaard-2-Oost" "Huiswaard-1-Oost" "Huiswaard-2-Oost"

我使用这个备忘单来帮助我理解正则表达式:https : //www.rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:gsub,模式=向量,替换=向量

来自分类Dev

R:将“ +”字符替换为gsub

来自分类Dev

如何增加gsub()替换字符串?

来自分类Dev

用R中的相应替换字符串替换一组模式匹配

来自分类Dev

R-gsub替换反斜杠

来自分类Dev

替换R中的字符串,给出模式向量和替换向量

来自分类Dev

R,gsub(),替换为“。” 在一定条件下

来自分类Dev

使用gsub解析长字符串,替换在R中保留为char

来自分类Dev

文本替换-模式是一组字符串[r]

来自分类Dev

Lua:string.gsub模式允许多个模式替换

来自分类Dev

R gsub一次替换几个文本

来自分类Dev

在R中的一个gsub()或chartr()语句中替换多个字符串?

来自分类Dev

gsub不会替换R中的所有预期匹配项

来自分类Dev

Gsub导致部分字符串被替换

来自分类Dev

根据周围的字符/数值替换不同的值:gsub R

来自分类Dev

如何使用gsub将整个字符替换为特定模式

来自分类Dev

gsub函数中R中的意外结果,而不是替换

来自分类Dev

在R中用gsub错误替换字符串

来自分类Dev

在R中使用gsub替换特定模式

来自分类Dev

如何让gsub处理多种模式和替换

来自分类Dev

替换R中的字符串,给出模式向量和替换向量

来自分类Dev

用R中的gsub替换

来自分类Dev

文本替换-模式是一组字符串[r]

来自分类Dev

R:使用gsub()替换文本中的特殊字符

来自分类Dev

R(gsub)中大小写字母的替换

来自分类Dev

使用gsub和块替换模式

来自分类Dev

R-使用gsub()替换字符串

来自分类Dev

在 R 中使用 gsub() 将 y 替换为 x

来自分类Dev

使用 gsub 替换 R 中最后一次出现的字符串