[英]How to remove specific special characters in R
我有一些像這樣的句子。
c = "In Acid-base reaction (page[4]), why does it create water and not H+?"
我想刪除除'?&+ - /之外的所有特殊字符
我知道如果我想刪除所有特殊字符,我可以簡單地使用
gsub("[[:punct:]]", "", c)
"In Acidbase reaction page4 why does it create water and not H"
但是,一些特殊字符如+ - ? 也被刪除,我打算保留。
我試圖創建一個特殊字符串,我可以在這樣的代碼中使用
gsub("[special_string]", "", c)
我能做的最好的就是想出這個
cat("!\"#$%()*,.:;<=>@[\\]^_`{|}~.")
但是,以下代碼不起作用
gsub("[cat("!\"#$%()*,.:;<=>@[\\]^_`{|}~.")]", "", c)
我應該怎么做才能刪除特殊字符,除了一些我要保留的字符?
謝謝
gsub("[^[:alnum:][:blank:]+?&/\\-]", "", c)
# [1] "In Acid-base reaction page4 why does it create water and not H+?"
我認為你正在使用正則表達式解決方案。 我會給你一個凌亂的解決方案和一個包添加解決方案(無恥的自我推銷)。
可能有更好的正則表達式:
x <- "In Acid-base reaction (page[4]), why does it create water and not H+?"
keeps <- c("+", "-", "?")
## Regex solution
gsub(paste0(".*?($|'|", paste(paste0("\\",
keeps), collapse = "|"), "|[^[:punct:]]).*?"), "\\1", x)
#qdap: addon package solution
library(qdap)
strip(x, keeps, lower = FALSE)
## [1] "In Acid-base reaction page why does it create water and not H+?"
為了讓你的方法工作,你需要在領先的“[”之后立即放置文字“]”
gsub("[][!#$%()*,.:;<=>@^_`|~.{}]", "", c)
[1] "In Acid-base reaction page4 why does it create water and not H+?"
你可以把內部的“[”放在任何地方。 如果您需要排除減號,則需要最后一次。 列出所有這些特殊的預定義字符類后,請參閱?regex頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.