我有一些像这个句子这样的句子。
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)
我想知道如何去除特殊字符,但是有一些特定的字符我希望保留,怎么办?
谢谢
?regex
。 - IRTFM[]
)内部的^
具有不同的含义。还有几个其他字符也有不同的含义。例如,?+
在字符范围内不是特殊字符,但-
是(因此我们必须转义它)。在表达式内部,作为第一个字符,它表示否定,或者除了表达式内部的内容之外的所有内容。如果这回答了你的问题,请考虑将其标记为已回答。谢谢。 - BrodieG\\.
:gsub("[^[:alnum:][:blank:]+?&/\\-\\.]", "", c)
。(\是转义字符,使正则表达式将"."识别为文本,而不是匹配任何字符的符号。) - Matt L.