数据修剪正则表达式

时间:2015-03-30 16:24:10

标签: regex r trim

我是regex和r的新手, 并尝试清除包含A列的数据框。

      A
"111  222 AAA2"
"11  23 BBB1" 
"101  33 CC3"

第一个空白包含两个空白,第二个空白仅包含一个, 并且弦的长度可以变化。我希望得到最后一个字,即第二个空白之后。

输出数据框将是

 A
AAA2
BBB1
CC3

我将不胜感激任何帮助!

2 个答案:

答案 0 :(得分:2)

1)read.table 使用read.table并获取第3列:

DF <- data.frame(V1 = c("111  222 AAA2", "11  23 BBB1", "101  33 CC3"),
  stringsAsFactors = FALSE)
read.table(text = DF$V1, as.is = TRUE)[[3]]

,并提供:

[1] "AAA2" "BBB1" "CC3" 

2)sub 如果你真的想使用正则表达式,那么这将删除所有内容,包括最后一个空格,得到相同的结果:

sub(".* ", "", DF$V1)

以下是正则表达式的可视化:

.* 

Regular expression visualization

Debuggex Demo

答案 1 :(得分:0)

如果我理解你的规则,这可能会有效:

x <- c("111  222 AAA2", "11  23 BBB1", "101  33 CC3")

gsub("^[^A-Z]+", "", x)
## [1] "AAA2" "BBB1" "CC3"