当前位置: 首页 > 知识库问答 >
问题:

从R中的字符串中删除所有特殊字符?

金何平
2023-03-14

如何从R中的字符串中删除所有特殊字符并用空格替换它们?

要删除的一些特殊字符是:~!@#$%^

我尝试了regex[:punct:][/code>模式,但它只删除标点符号。

问题2:如何从外语中删除字符,比如:ąąęść

答:用[^[: alnum:]]去掉~! @#$%^

R基数的解:

x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" 
gsub("[[:punct:]]", "", x)  # no libraries needed

共有3个答案

颜高朗
2023-03-14

将特殊字符转换为撇号,

Data  <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)

下面对其进行编码,以删除额外的“%”撇号

Data <- gsub("''","" , Data ,ignore.case = TRUE)

使用gsub(...)函数用撇号替换特殊字符

龙正初
2023-03-14

与其使用正则表达式删除那些“疯狂”字符,不如将它们转换为ASCII,这样可以删除重音,但保留字母。

astr <- "Ábcdêãçoàúü"
iconv(astr, from = 'UTF-8', to = 'ASCII//TRANSLIT')

结果

[1] "Abcdeacoauu"
师冥夜
2023-03-14

您需要使用正则表达式来识别不需要的字符。对于最容易阅读的代码,您需要stringr包中的str_replace_all,而base R中的gsub也可以。

确切的正则表达式取决于您试图执行的操作。你可以删除问题中给出的特定字符,但删除所有标点符号要容易得多。

x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")

(基本R等价物是gsub(“[[:punct:][]”,“”,x)

另一种方法是替换掉所有非字母数字字符。

str_replace_all(x, "[^[:alnum:]]", " ")

请注意,字母、数字或标点符号的定义根据您所在的地区略有不同,因此您可能需要进行一些实验,以获得您想要的内容。

 类似资料:
  • 问题内容: 我面临网址问题,我希望能够转换标题,该标题可以包含任何内容,并去除所有特殊字符,因此它们仅包含字母和数字,当然我想用连字符替换空格。 怎么做?我听说过很多关于正则表达式(regex)的使用… 问题答案: 这应该可以满足您的需求: 用法: 将输出: 编辑: 嘿,只是一个简单的问题,如何防止多个连字符彼此相邻?并将它们替换为1?

  • 问题内容: 我在删除特殊字符时遇到问题。我想删除除“()/。%-&”以外的所有特殊字符,因为我将该字符串设置为标题。 我编辑了原始代码(如下所示): 但这无法删除特殊字符,例如:“,”,“”。 原始代码:(此方法有效,但会删除以下字符:“()/。%-&”) 问题答案: 您的句点匹配所有字符。转义它(和其他特殊字符),如下所示:

  • 问题内容: import java.util.Scanner; import java.util.regex.*; public class io{ public static void main(String args[]){ Scanner scan = new Scanner(System.in); String c; if((c=scan.nextLine())!=null) { Patt

  • 问题内容: 我正在编写一个bash脚本,需要分析文件名。 它将需要删除所有特殊字符(包括空格): “!?.-_ ,并将所有大写字母更改为小写字母。类似于: 至: 我已经看到许多问题可以使用许多不同的编程语言来实现,而不能使用bash来实现。有什么好方法吗? 问题答案: 第一个删除特殊字符。表示删除,表示补码(反转字符集)。因此,意味着删除除指定字符外的所有字符。在与包括保持Linux或Window

  • 问题内容: 我需要从字符串中删除所有特殊字符,标点符号和空格,以便只有字母和数字。 问题答案: 这可以不用正则表达式来完成: 您可以使用: 如果您坚持使用正则表达式,则其他解决方案也可以。但是请注意,如果可以在不使用正则表达式的情况下完成此操作,那么这是最好的解决方法。

  • 问题内容: 我想删除特殊字符,例如: 使用Java从String中获取。 问题答案: 这取决于你定义为特殊字符的内容,但是请尝试: 请注意,该^字符不能是列表中的第一个字符,因为你要么必须对其进行转义,否则将意味着“除这些字符外的任何字符”。 另一个注意事项:-字符必须是列表中的第一个或最后一个,否则你必须对其进行转义,否则它将定义一个范围(例如,表示“ 范围内的所有字符” )。 所以,为了保持一