如何获取以“.nc”结尾的不同长度的字符串的最后一部分

how to get the last part of strings with different lengths ended by ".nc"

我有几个下载链接(即字符串),每个字符串有不同的长度

例如,假设这些假链接是我的字符串:

My_Link1 <- "http://esgf-data2.diasjp.net/pr/gn/v20190711/pr_day_MRI-AGCM3-2-H_highresSST_gn_20100101-20141231.nc"

My_Link2 <- "http://esgf-data2.diasjp.net/gn/v20190711/pr_-present_r1i1p1f1_gn_19500101-19591231.nc"

我的目标:

A) 我只想让每个字符串的最后一部分以 .nc 结尾,并得到这些结果:

pr_day_MRI-AGCM3-2-H_highresSST_gn_20100101-20141231.nc

pr_-present_r1i1p1f1_gn_19500101-19591231.nc

B) 我只想在 .nc 之前得到每个字符串的最后一部分,并得到这些结果:

pr_day_MRI-AGCM3-2-H_highresSST_gn_20100101-20141231

pr_-present_r1i1p1f1_gn_19500101-19591231

我试图在网上寻找方法,但我失败了。看来这可以在 Python 中完成,如此处记录:

How to get everything after last slash in a URL?

有谁知道R中的相同方法吗?

非常感谢您的宝贵时间。

获取字符串最后一部分的快捷方式是使用 basename

basename(My_Link1)
#[1] "pr_day_MRI-AGCM3-2-H_highresSST_gn_20100101-20141231.nc"

对于第二个问题,如果您想删除最后一个 ".nc",我们可以使用 sub,例如

sub("\.nc", "", basename(My_Link1))
#[1] "pr_day_MRI-AGCM3-2-H_highresSST_gn_20100101-20141231"

这里有一些正则表达式是获取第一部分的另一种方法:

sub(".*/", "", My_Link1)