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

问题描述 投票:0回答:5

我在 R 中有以下字符串:

11:22334455.CEL

我只想提取 : 之后和 . 之前的数字系列,这意味着

22334455

我正在尝试

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

11216803.CEL

我怎么能修复

gsub
函数只得到
22334455

谢谢!

r regex string gsub
5个回答
1
投票

您可以使用正则表达式捕获组(括号

(\\d+)
)来捕获您想要的内容。

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

[1] "22334455"

0
投票

使用

stringr
s
str_extract
group
.

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

library(stringr)

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

0
投票

使用

trimws
来自
base R

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

0
投票

您可以使用

str_extract
和后向观察
(?<=:)
来断言匹配仅在冒号后 开始,并且前瞻
(?=\\.)
断言匹配后必须跟一个
.
:

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

0
投票

您可以删除

':'
之前和
'.'

之后的字符
gsub(".*:|\\..*", "", "11:22334455.CEL")

# [1] "22334455"
© www.soinside.com 2019 - 2024. All rights reserved.