如何从R中的字符串中删除所有特殊字符并用空格替换它们?
要删除的一些特殊字符是:~!@#$%^
我尝试了
regex
和[:punct:][/code>模式,但它只删除标点符号。
问题2:如何从外语中删除字符,比如:
ąąęść
?
答:用
[^[: alnum:]]
去掉~! @#$%^
R基数的解:
x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-="
gsub("[[:punct:]]", "", x) # no libraries needed
将特殊字符转换为撇号,
Data <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)
下面对其进行编码,以删除额外的“%”撇号
Data <- gsub("''","" , Data ,ignore.case = TRUE)
使用gsub(...)
函数用撇号替换特殊字符
与其使用正则表达式删除那些“疯狂”字符,不如将它们转换为ASCII,这样可以删除重音,但保留字母。
astr <- "Ábcdêãçoàúü"
iconv(astr, from = 'UTF-8', to = 'ASCII//TRANSLIT')
结果
[1] "Abcdeacoauu"
您需要使用正则表达式来识别不需要的字符。对于最容易阅读的代码,您需要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中获取。 问题答案: 这取决于你定义为特殊字符的内容,但是请尝试: 请注意,该^字符不能是列表中的第一个字符,因为你要么必须对其进行转义,否则将意味着“除这些字符外的任何字符”。 另一个注意事项:-字符必须是列表中的第一个或最后一个,否则你必须对其进行转义,否则它将定义一个范围(例如,表示“ 范围内的所有字符” )。 所以,为了保持一