繁体   English   中英

gsub并删除R中<和>之间的所有字符

[英]gsub and remove all characters between < and > in R

我有一个字符串:

a="<gml:posList srsDimension=\"2\" count=\"5\">7 -5.067 -3 56.7 -3.3 58.3 -5.65 57 -8.33</gml:posList>"

并希望gsub <和>之间的所有内容,到目前为止现在都有用。 我想只剩下数字(即7 -5 -3 56 -3 58 ...),我可以在其中处理每个偶数/奇数元素。

我尝试删除两个括号之间的所有文本无济于事

    > gsub('<^|*>','',a[[1]],perl=TRUE)
Error in gsub("<^|*>", "", a[[1]], perl = TRUE) : 
  invalid regular expression '<^|*>'
In addition: Warning message:
In gsub("<^|*>", "", a[[1]], perl = TRUE) : PCRE pattern compilation error
    'nothing to repeat'
    at '*>'

gsub('<gml.+>\\d','',a[[1]])

哪些剪切删除了第一个数字

我确信我错过了一些明显的东西,因为'<'不是一个特殊的角色。

这是其他一些尝试(并失败)

> gsub('<.+>','',a[[1]])
[1] ""
> gsub('<.+>.+<.+>','',a[[1]])
[1] ""
> gsub('<gml.+>','',a[[1]])
[1] ""

您可以使用

 gsub("<[^>]+>", "",a)
[1] "7 -5.067 -3 56.7 -3.3 58.3 -5.65 57 -8.33"

“<”和“>”是文字,“[^>]”匹配任何不是“>”的字符,“+”允许一个或多个匹配。 使用gsub会在找到此模式时多次重复此匹配。 该模式由空字符串“”替换。

library(qdapRegex)
a="<gml:posList srsDimension=\"2\" count=\"5\">7 -5.067 -3 56.7 -3.3 58.3 -5.65 57 -8.33</gml:posList>"
rm_between(a, "<", ">", extract = T)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM