gpt4 book ai didi

r - 提取 bool 搜索字符串中的第一个值

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

我希望能够控制从搜索字符串中提取的元素的层次结构。

具体来说,在字符串“425 million won”中,我想先提取“won”,如果没有出现“won”,则提取“n”。

我希望以下结果“获胜”:

stringr::str_extract("425 million won", "won|n")

请注意,由于我的数据中的其他限制(“million”和“won”之间不一定有空格),在我的正则表达式中指定一个空格在 won 之前是不够的。理想情况下,出于性能方面的考虑,我希望使用正则表达式而不是 if-else 子句来执行此操作。

最佳答案

See code in use here

pattern <- "^(?:(?!won).)*\\K(?:won|n)"
s <- "425 million won"
m <- gregexpr(pattern,s,perl=TRUE)
regmatches(s,m)[[1]]

说明

  • ^ 在行首声明位置
  • (?:(?!won).)* Tempered greedy token匹配除 won proceeds
  • 之外的任何字符
  • \K 重置匹配的起点。任何先前消耗的字符不再包含在最终匹配中
  • (?:won|n) 匹配 wonn

关于r - 提取 bool 搜索字符串中的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466321/

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