使用R中的gsub删除一对括号内的任何内容

时间:2011-08-14 14:27:03

标签: regex r

假设我有如下字符串:

<a>b<c>

我想删除<a><c>,但我无法使用gsub("<.*>","","<a>b<c>"),因为这样也会删除b

之前我问了一个类似的问题,但是在第二个想法中,我想我应该总体上学习如何处理这类问题。感谢。

3 个答案:

答案 0 :(得分:11)

不要在括号内的东西中使用右括号>

z <- "<a>b<c>"
gsub("<[^>]+>","",z)

答案 1 :(得分:4)

你可以使用非贪婪的正则表达式,例如。 /<.*?>/

这只适用于简单的HTML,并且很容易被破坏。请考虑以下HTML,使用正则表达式无法轻松删除。

<span title="Help > Index">

答案 2 :(得分:4)

还有一个想法,通常在嘈杂的设置中非常有用(即,当它接近制作一个标记器时):

strsplit("<a>b<c>",split='<|>')[[1]][3]