gpt4 book ai didi

regex - R 在除特定单词外的所有单词周围放置引号

转载 作者:行者123 更新时间:2023-12-01 11:34:08 25 4
gpt4 key购买 nike

我正在尝试使用 gsub 函数在所有单词周围放置单引号,单词“one”除外。我尝试了以下方法,但它没有像我预期的那样工作。

text <- "one two three four five one six one seven one eight nine ten one"
gsub("(?<!one)([a-zA-Z]+)", "'\\1'", text)

输出应该是:

one 'two' 'three' 'four' 'five' one 'six' one 'seven' one 'eight' 'nine' 'ten' one

感谢任何帮助。

最佳答案

首先,(?<!...)PCRE 其中 perl = TRUE需要启用参数。

诀窍是在这里使用先行而不是后行并添加 word boundaries强制正则表达式引擎匹配整个单词。此外,您广泛地陈述了;在我的词汇表中,这可能意味着任何一种词,所以我将使用 Unicode 属性 \pL , 它匹配来自任何语言的任何类型的字母,如果这比预期的匹配更多,你可以简单地将它改回 [a-zA-Z]或使用 POSIX 命名类 [[:alpha:]]相反。

gsub("(?i)\\b(?!one)(\\pL+)\\b", "'\\1'", text, perl=T)
# [1] "one 'two' 'three' 'four' 'five' one 'six' one 'seven' one 'eight' 'nine' 'ten' one"

关于regex - R 在除特定单词外的所有单词周围放置引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191379/

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