使用gsub将括号删除为R中不需要的文本

时间:2015-03-10 21:09:09

标签: regex r

我正在尝试清理数据框中的列,其中的行如下所示:

1234, text ()

我需要保留所有行中的数字。我用过:

df$column = gsub(", text ()", "", df$column)

得到了这个:

1234()

我只用括号重复操作,但它们不会消失。我无法找到一个专门处理被删除的括号作为不需要的文本的示例。 sub也不起作用。

任何人都知道为什么这不起作用?

2 个答案:

答案 0 :(得分:2)

括号在正则表达式中存储元字符。您应该使用\\[]或添加fixed = TRUE来转义它们。但在您的情况下,您只想保留数字,所以只需使用\\D

删除其他所有内容
gsub("\\D", "", "1234, text ()")
## [1] "1234"

答案 1 :(得分:0)

如果您的列始终看起来像上述格式:

1234, text ()

以下内容应该有效:

string extractedNumber = Regex.Match( INPUT_COLUMN, @"^\d{4,}").Value

读取如下:从字符串的开头找到四位或更多位数。