gpt4 book ai didi

r - 如何使用正则表达式在特定字符后提取一串数字的特定实例

转载 作者:行者123 更新时间:2023-12-04 12:55:25 25 4
gpt4 key购买 nike

标题可能令人困惑,所以请允许我详细说明,假设我已经初始化了以下字符串

some_string_1 <- "Charges: $400.50 applied to account 1, $300.70 applied to account 2, $120.30 applied to account 3"

some_string_2 <- "Charges: $500.50 applied to account 2, $200.10 applied to account 3, $150.90 applied to account 1"
假设我只关注账户 1,所以我想在与账户 1 的费用相关的美元符号之后提取数字。我想知道如何使用正则表达式和 str_extract 等函数,我可以获得以下输出:
假设我调用 str_extract(some_string_1, regexp) ,我想给
[1] "400.50"
假设我调用 str_extract(some_string_2, regexp) ,我想给
[1] "150.90"
如您所见,应用到账户 1 的费用在两个字符串中的位置不同(它是字符串 1 中列出的第一项费用,但是字符串 2 中列出的第三项费用),因此正则表达式必须考虑到这一点。
到目前为止,我所拥有的是以下内容: regexp <- "(?<=\\$)\\d+(?=.)" ,它成功地给了我出现在字符串中的第一个美元符号后面的数字(没有小数位的数字),但我不知道如何指定我只想要关联的美元符号后面的数字与帐户应用的费用 1. 寻求这方面的帮助。

最佳答案

不是您正在寻找的真正正则表达式答案-

vec <- c(some_string_1, some_string_2)

sapply(strsplit(vec, ',\\s*'), function(x)
sub('.*\\$(\\d+\\.\\d+).*', '\\1', x[grep('account 1', x)]))

#[1] "400.50" "150.90"
这里的逻辑是将每个帐户拆分为单独的向量并从 'account 1' 中提取数字。 .

关于r - 如何使用正则表达式在特定字符后提取一串数字的特定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68172375/

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