R 如何仅保留字母数字和数字字符(代码),同时删除字符串的其余部分?

R 如何仅保留字母数字和数字字符(代码),同时删除字符串的其余部分?,r,substring,character,gsub,R,Substring,Character,Gsub,我有一列完整的文本,其中我必须只提取一个固定的代码,该代码只能由数字或数字和字母组成,如23356978和Z23489CDE或D123F598以及任何其他组合。 如何在删除字符串其余部分的同时保留这些代码 我在试着做类似的事情 gsub("[A-F][A-Z]*[A-Z]","",string) 但像这样,我也丢失了密码中的字母 有什么建议吗?您可以用空字符串替换所有非字母数字的内容,如下所示: a<-"aa-46,83!jhdf" gsub("[^[:alnum:]]","",a) [

我有一列完整的文本,其中我必须只提取一个固定的代码,该代码只能由数字或数字和字母组成,如23356978和Z23489CDE或D123F598以及任何其他组合。 如何在删除字符串其余部分的同时保留这些代码

我在试着做类似的事情

gsub("[A-F][A-Z]*[A-Z]","",string)
但像这样,我也丢失了密码中的字母


有什么建议吗?

您可以用空字符串替换所有非字母数字的内容,如下所示:

a<-"aa-46,83!jhdf"
gsub("[^[:alnum:]]","",a)
[1] "aa4683jhdf"

\W与\W相反,它是单词或任何字母数字字符的符号,但这也会保留下划线,下划线是\W的一部分,您可能不需要它

您可以用空字符串替换所有非字母数字的字符,如下所示:

a<-"aa-46,83!jhdf"
gsub("[^[:alnum:]]","",a)
[1] "aa4683jhdf"
\W与\W相反,后者是单词或任何字母数字字符的符号,但这也会保留下划线,下划线是\W的一部分,您可能不希望看到类似的情况

像这样的字符串

strings一个选项是使用stringr替换所有非字母数字字符:

x<-"aa-46,83!jhdf"
stringr::str_replace_all(x, "[^[:alnum:]]", "")
输出

一种选择是使用stringr替换所有非字母数字字符:

x<-"aa-46,83!jhdf"
stringr::str_replace_all(x, "[^[:alnum:]]", "")
输出


我们可以看到您的字符串的一些例子吗?我们可以看到您的预期输出的一些例子吗?CIG-ZD5083D833,Proposte di informazione e Comuniczione-art的可能副本。78德尔雷格。UE 508/2014-PO FEAMP Sicilia 2014/2020-DDG n。2018年1月30日第21版-DDG n。538 del 26/09/2018-蓝海之地2018-CIG ZD4251ACC6我们可以看到您的字符串的一些例子吗?我们可以看到您的预期输出的一些例子吗?可能重复CIG-ZD5083D833,提议信息和通信-艺术。78德尔雷格。UE 508/2014-PO FEAMP Sicilia 2014/2020-DDG n。2018年1月30日第21版-DDG n。538 del 26/09/2018-蓝色海洋土地2018-CIG ZD4251ACC6\W不等于[^[:alnum:]。至少它与u和[^[:alnum:]]不匹配。是的,我在底部的括号中写了同样多的内容。这就是为什么它不是主选项。\W不等于[^[:alnum:][]。至少它与u和[^[:alnum:]]不匹配。是的,我在底部的括号中写了同样多的内容。这就是为什么它不是主要的选择。它不起作用,它只删除了“信息和通信”两个词之间的空格-艺术。78德尔雷格。UE 508/2014-PO FEAMP Sicilia 2014/2020-DDG n。2018年1月30日第21版-DDG n。538 del 26/09/2018-蓝色海洋之地2018-CIG ZD4251ACC6当我有这样的东西时,我只需要在CIGIt不起作用后保留字母数字代码,它只会删除单词Proposte di informazione e e Comuniczione-art中的che空格。78德尔雷格。UE 508/2014-PO FEAMP Sicilia 2014/2020-DDG n。2018年1月30日第21版-DDG n。538 del 26/09/2018-蓝海陆地2018-CIG ZD4251ACC6当我有这样的东西时,我只需要在CIG后面保留字母数字代码
"aa4683jhdf"