删除字符串字符

时间:2014-06-22 09:19:11

标签: r

我有一个字符串

"Manager *?position (is not *# filled"

我需要这个

"Manager position is not filled" 

我试过了:

 paste(strsplit(st, "[*?(#]")[[1]],collapse="")

但是,间距不正确。

感谢。

4 个答案:

答案 0 :(得分:1)

如果您想使用strsplit(),我认为这样可以使间距正确。

> st <- "Manager *?position (is not *# filled"
> ss <- strsplit(st, "[[:punct:]]|\\s")[[1]]
> paste(ss[nzchar(ss)], collapse = " ")
# [1] "Manager position is not filled"

答案 1 :(得分:0)

可以尝试

gsub("[[:punct:] ]+"," ", st) 

gsub("[*?(#]", "", st)

虽然后者会返回额外的空间

答案 2 :(得分:0)

或者,您可以使用包stringr并处理空格:

string  <- "Manager *?position (is not *# filled"
str_replace_all(string = string, pattern = "[[:punct:]]+", replacement = "")

答案 3 :(得分:0)

使用qdap的方法:

st <- "Manager *?position (is not *# filled"

library(qdap)
clean(strip(st, lower.case = FALSE))

## [1] "Manager position is not filled"

strip删除特殊字符,clean删除多余的空格。