我在 R 中有以下字符串:
11:22334455.CEL
我只想提取 : 之后和 . 之前的数字系列,这意味着
22334455
我正在尝试
gsub("\\:*", "", 11:22334455.CEL)
,但我得到了以下结果:
11216803.CEL
我怎么能修复
gsub
函数只得到22334455
?
谢谢!
您可以使用正则表达式捕获组(括号
(\\d+)
)来捕获您想要的内容。
sub(".*:(\\d+)\\..*", "\\1", "11:22334455.CEL")
[1] "22334455"
使用
stringr
s str_extract
与 group
.
\\d+
检测一个或多个数字,此处位于定义捕获组的大括号内的 :
和 \\.
(转义句点)之间。
library(stringr)
str_extract("11:22334455.CEL", ":(\\d+)\\.", group = 1)
[1] "22334455"
使用
trimws
来自base R
trimws("11:22334455.CEL", whitespace = ".*:|\\..*")
[1] "22334455"
您可以使用
str_extract
和后向观察 (?<=:)
来断言匹配仅在冒号后 开始,并且前瞻 (?=\\.)
断言匹配后必须跟一个 .
:
str_extract("11:22334455.CEL", "(?<=:)\\d+(?=\\.)")
[1] "22334455"
您可以删除
':'
之前和'.'
之后的字符
gsub(".*:|\\..*", "", "11:22334455.CEL")
# [1] "22334455"