R语言 使用gsub删除信息

ddrv8njm  于 2023-02-26  发布在  其他
关注(0)|答案(4)|浏览(115)

我正试图从该行中删除截至去年/(年份)的所有信息。
“法国科学院第0495号文件/德国专利/1997年”
我运行的代码可以通过,但不会删除任何信息。
这是我运行的代码

date <- gsub("^[[:alnum:]]{1,}////", "",temp)

它通过了,但没有删除任何信息。我不确定我错过了什么。

fruv7luv

fruv7luv1#

使用sub

sub(".*/", "", "CSF0495/DE/wb/1997")
[1] "1997"

或使用basename

basename("CSF0495/DE/wb/1997")
[1] "1997"
cx6n0qe3

cx6n0qe32#

为什么不简单地提取年份,因为知道它由不止一个d igit组成,一直延伸到string($)中的最终位置?

library(stringr)
str_extract("CSF0495/DE/wb/1997", "\\d+$")
[1] "1997"
u91tlkcl

u91tlkcl3#

其中之一:

保持1997

.*匹配任意字符
.零次或多次
*到最后一个正斜杠/

date <- gsub(".*/", "", "CSF0495/DE/wb/1997")
date

[1] "1997"

删除1997

\\d{4}匹配任意四位数字
$符号匹配字符串的结尾

temp <- "CSF0495/DE/wb/1997"
date <- gsub("/\\d{4}$", "", temp)

[1] "CSF0495/DE/wb"
8gsdolmq

8gsdolmq4#

我认为gsubsub方法在所有现有的答案中是最有效的。

> tail(scan(text = "CSF0495/DE/wb/1997", what = "", sep = "/", quiet = TRUE), 1)
[1] "1997"

相关问题