我有一个字符串
"Manager *?position (is not *# filled"
我需要这个
"Manager position is not filled"
我试过了:
paste(strsplit(st, "[*?(#]")[[1]],collapse="")
但是,间距不正确。
感谢。
答案 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
删除多余的空格。