gpt4 book ai didi

regex - R中的正则表达式。捕获特定字段

转载 作者:行者123 更新时间:2023-12-02 06:32:48 25 4
gpt4 key购买 nike

我在 R 中有以下向量:

x <- c("id: capture this , something: the useless chunk , otherstuff: useless , more stuff")

我想获取字符串“capture this”。我使用了这个正则表达式:

library(rex)
r <- rex(
start,
anything,
"id: ",
capture(anything),
" , ",
anything
)
r
# > r
# > ^.*id: (.*) , .*
re_matches(x,r)

但是我得到的是:

> re_matches(x,r)
1
1 capture this , something: the useless chunk , otherstuff: useless

它捕获了我想要的内容,但也捕获了字符串的其余部分。我只想要“捕获这个”字段。即使我使用 gsub 函数:

gsub("^.*id: (.*) , .*", "\\1", x)

使用相同的正则表达式我得到相同的结果。

这是R的信息:R 版本 3.1.3 (2015-03-09) -- “光滑的人行道”版权所有 (C) 2015 R 统计计算基金会平台:x86_64-pc-linux-gnu(64 位)

以及ubuntu的版本:没有可用的 LSB 模块。经销商 ID:Ubuntu说明:Ubuntu 14.04.2 LTS发布:14.04代号:trusty

最佳答案

您在使用 yaml 吗?如果是这样,您可能会发现 yaml 包很有用

x <- c("id: capture this , something: the useless chunk , otherstuff: useless , more: stuff")

yaml::yaml.load(gsub(' , ', '\n', x))$id
# [1] "capture this"

请注意,我必须添加一个冒号才能使上述内容正常工作,但此解决方案的优点在于您可以根据关键字段提取每个部分。

下一个使用您的示例字符串,不使用包:

x <- c("id: capture this , something: the useless chunk , otherstuff: useless , more stuff")

gsub('id: (.*?) ,.*', '\\1', x)
# [1] "capture this"

关于regex - R中的正则表达式。捕获特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com