gpt4 book ai didi

将字符串中的数字范围替换为单个数字

转载 作者:行者123 更新时间:2023-12-02 09:43:03 26 4
gpt4 key购买 nike

有没有办法用字符串中的单个数字替换数字范围?数字范围可以从 n-n,最有可能在 1-15 左右,也可以是 4-10。

范围可以用 a) -

表示
a <- "I would like to buy 1-3 cats"

或使用单词 b) 例如:to、bis、jusqu'à

b <- "I would like to buy 1 jusqu'à 3 cats"

结果应该是这样的

"I would like to buy 1,2,3 cats"

我发现了这个:Replace range of numbers with certain number但无法真正在 R 中使用它。

最佳答案

gsubfn 包中的

gsubfngsub 类似,但它不是用替换字符串替换匹配项,而是允许用户指定一个函数(可能采用公式表示法,如下所示)这里)。然后,它将匹配项作为单独的参数传递到正则表达式中的捕获组,即正则表达式括号内部分的匹配项,并用函数的输出替换整个匹配项。因此,我们匹配 "(\\d+)(-| to | bis | jusqu'à )(\\d+)" ,这会产生三个捕获组,因此函数有 3 个参数。在函数中,我们将 seq 与其中的第一个和第三个一起使用。请注意,seq 可以采用字符参数并将它们解释为数字,因此我们不必将参数转换为数字。

因此我们得到了这一行:

library(gsubfn)
s <- c(a, b) # test input strings

gsubfn("(\\d+)(-| to | bis | jusqu'à )(\\d+)", ~ paste(seq(..1, ..3), collapse = ","), s)

给予:

[1] "I would like to buy 1,2,3 cats" "I would like to buy 1,2,3 cats"

关于将字符串中的数字范围替换为单个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49344140/

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