我正在尝试在R中使用grep和gsub命令在字符串中查找重复的块。例如,我可能有这样的事情...
z <- c("ab;cd;ef;gh;ij;kl;mn;mn;", "ab;cd;ef;gh;ij;kl;op;")
我想识别在分号之间具有重复子字符串的字符串。因此,在这种情况下,我想取回z [1],也许以后再将其更改为“ ab; cd; ef; gh; ij; kl; mn;”。我知道我可以使用gsub中的内存插槽来做类似的事情...
gsub("(.*mn;).*;", "\\1", z)
但是,当我不知道重复在哪里或重复的子字符串是什么时,这将无法工作。我想做的是这样的...
gsub(";([^;]*;)\\1;", "\\1", z)
为了生产这个...
[1] "ab;cd;ef;gh;ij;kl;mn;" "ab;cd;ef;gh;ij;kl;op;"
有想法吗?
我建议使用以下方法修改先前的答案 gsub
gsub("([^;]*;)\\1;?", "\\1", z)
这个也可以,也许更正确
gsub("([^;]*;)\\1", "\\1", z)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句