gpt4 book ai didi

r - 在 stringr 中使用 perl/regex 到 upper\U

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

是否可以在 stringr 函数中使用 perl 表达式?

例如:

> sub("(Hi)", "\\U\\1",  "Hi, how's it going?", perl = T)
[1] "HI, how's it going?"

这在 stringr 中失败了:

> str_replace("Hi, how's it going?", "(Hi)", "\\U\\1")
[1] "1, how's it going?"

我在 tidyverse idiom 工作,所以我想使用 str_replace 而不是 sub。总的来说很高兴知道。

最佳答案

您可以更改大小写,或以任何其他方式操作 stringr str_replace 中的整个匹配:

library(stringr)
str_replace("Hi, how's it going?", "Hi", function(m) str_to_upper(m))
## => [1] "HI, how's it going?"
str_replace("Hi, how's it going?", "Hi", function(m) toupper(m))
## => [1] "HI, how's it going?"

但是,由于匿名函数只允许将整个匹配值传递给它,因此没有 (g)sub 那样的灵 active ,这将行不通:

str_replace("Hi, how's it going?", "(H)(i)", function(m,n) paste0(str_to_lower(m),str_to_upper(n)))

使用 stringr_1.4.0 测试。

关于r - 在 stringr 中使用 perl/regex 到 upper\U,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57599065/

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