数据 trim 正则表达式

Data trim regex

我是正则表达式和 r 的新手, 并尝试清除包含 A 列的数据框。

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

第一个空格包含两个空格,第二个空格只包含一个, 并且字符串的长度可以变化。我想得到最后一个词,它出现在第二个空白之后。

输出数据帧将是

 A
AAA2
BBB1
CC3

如有任何帮助,我将不胜感激!

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 如果你真的想使用正则表达式那么这将删除所有直到并包括最后一个 space 给出相同的结果:

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

这是正则表达式的可视化:

.* 

Debuggex Demo

如果我理解你的规则,这可能会起作用:

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

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