我正试图从该行中删除截至去年/(年份)的所有信息。“法国科学院第0495号文件/德国专利/1997年”我运行的代码可以通过,但不会删除任何信息。这是我运行的代码
date <- gsub("^[[:alnum:]]{1,}////", "",temp)
它通过了,但没有删除任何信息。我不确定我错过了什么。
fruv7luv1#
使用sub
sub
sub(".*/", "", "CSF0495/DE/wb/1997") [1] "1997"
或使用basename
basename
basename("CSF0495/DE/wb/1997") [1] "1997"
cx6n0qe32#
为什么不简单地提取年份,因为知道它由不止一个d igit组成,一直延伸到string($)中的最终位置?
d
$
library(stringr) str_extract("CSF0495/DE/wb/1997", "\\d+$") [1] "1997"
u91tlkcl3#
其中之一:
保持1997
1997
.*匹配任意字符.零次或多次*到最后一个正斜杠/
.*
.
*
/
date <- gsub(".*/", "", "CSF0495/DE/wb/1997") date [1] "1997"
删除1997
\\d{4}匹配任意四位数字$符号匹配字符串的结尾
\\d{4}
temp <- "CSF0495/DE/wb/1997" date <- gsub("/\\d{4}$", "", temp) [1] "CSF0495/DE/wb"
8gsdolmq4#
我认为gsub或sub方法在所有现有的答案中是最有效的。
gsub
> tail(scan(text = "CSF0495/DE/wb/1997", what = "", sep = "/", quiet = TRUE), 1) [1] "1997"
4条答案
按热度按时间fruv7luv1#
使用
sub
或使用
basename
cx6n0qe32#
为什么不简单地提取年份,因为知道它由不止一个
d
igit组成,一直延伸到string($
)中的最终位置?u91tlkcl3#
其中之一:
保持
1997
.*
匹配任意字符.
零次或多次*
到最后一个正斜杠/
删除
1997
\\d{4}
匹配任意四位数字$
符号匹配字符串的结尾8gsdolmq4#
我认为
gsub
或sub
方法在所有现有的答案中是最有效的。