【发布时间】:2021-04-23 01:51:54
【问题描述】:
我在 R 中使用正则表达式。我试图挑选出字符向量中某些字符串末尾的带括号的内容。我能够在括号内的内容存在时找到它,但我无法在没有括号的输入中排除非括号内的内容。
例子:
> x <- c("DECIMAL", "DECIMAL(14,5)", "RAND(1)")
> gsub("(.*?)(\\(.*\\))", "\\2", x)
[1] "DECIMAL" "(14,5)" "(1)"
输出中的最后两个元素是正确的,第一个不正确。我想要
c("", "(14,5)", "(1)")
输入可以在括号内容之前包含任何内容,实际上是任何单词或数字字符。
【问题讨论】:
-
regmatches(x, gregexpr("([(].*?[)])", x)) -
@EyaawB。聪明的。返回一个列表,而不是一个向量,但可以很容易地清理。