gpt4 book ai didi

r - 为什么 gsubfn 会省略部分匹配项?

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

我分析文本字符串并尝试用逗号 , 替换圆括号 () 中的所有点 .

我找到了一个匹配方括号内所有内容的正则表达式:

text <- "let's count (get . this . without dots) the days?"
brackets = "\\((.*?)\\)"
regmatches(text,regexpr(brackets,text))

给我:

[1] "(get . this . without dots)"

如所述here ,我可以使用 gsubfn 进行更改:

library(gsubfn)
gsubfn(brackets, ~ gsub("\\.", ",",x), text)

给我:

[1] "let's count get , this , without dots the days?"

而不是我认为我会得到的:

[1] "let's count (get , this , without dots) the days?"

为什么 gsubfn 会省略我的部分匹配项? (即括号)有没有其他方法可以将 () 中的 . 替换为 ,

最佳答案

您可以在原始正则表达式中保留任意数量的捕获组,无需修改模式,只需告诉 gsubfn通过传递 backref=0 使用完整匹配参数:

gsubfn("\\((.*?)\\)", ~ gsub("\\.", ",",x), text, backref=0)
[1] "let's count (get , this , without dots) the days?"

关于r - 为什么 gsubfn 会省略部分匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58903769/

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