R语言 如何提取两点和一个点之间的字符串

tyky79it  于 2023-03-05  发布在  其他
关注(0)|答案(5)|浏览(190)

在R中有以下字符串:

11:22334455.CEL

我只想提取后面的数列:以及之前那意味着

22334455

我尝试使用gsub("\\:*", "", 11:22334455.CEL),但得到了以下结果:

11216803.CEL

如何修复gsub函数以仅获得22334455
谢谢大家!

hi3rlvi2

hi3rlvi21#

您可以使用正则表达式捕获组(括号(\\d+))来捕获您想要的内容。

sub(".*:(\\d+)\\..*", "\\1", "11:22334455.CEL")

[1] "22334455"
iecba09b

iecba09b2#

使用stringrgroup
\\d+检测一个或多个数字,这里是:\\.(转义句点)之间的数字,位于定义捕获组的大括号内。

library(stringr)

str_extract("11:22334455.CEL", ":(\\d+)\\.", group = 1)
[1] "22334455"
ffscu2ro

ffscu2ro3#

使用base R中的trimws

trimws("11:22334455.CEL", whitespace = ".*:|\\..*")
[1] "22334455"
iszxjhcz

iszxjhcz4#

您可以将str_extract与look-behind (?<=:)一起使用,以Assert匹配只从冒号之后的开始,并使用look-ahead (?=\\.)来Assert匹配后面必须跟一个.

str_extract("11:22334455.CEL", "(?<=:)\\d+(?=\\.)")
[1] "22334455"
bnl4lu3b

bnl4lu3b5#

可以删除':'之前和之后的字符

gsub(".*:|\\..*", "", "11:22334455.CEL")

# [1] "22334455"

相关问题