gpt4 book ai didi

r - 在 R (perl) 上使用正则表达式在向量中查找符合条件的单词

转载 作者:行者123 更新时间:2023-12-01 22:48:21 26 4
gpt4 key购买 nike

我想查找向量中包含单词“RT”或“R”的行,但如果单词“RT”前面有“no”,则不会。

单词 RT 前面可以没有任何内容、空格、点等。使用正则表达式,我尝试过:

grep("(?<=[no] )RT", aaa,ignore.case = FALSE, perl = T)

这给了我所有带有“no RT”的行。

grep("(?=[^no].*)RT",aaa , perl = T)

这给了我所有包含“RT”的行,开头有或没有“no”。

我的错误是什么?我认为 ^ 给出了除了它后面的字符之外的所有内容。

示例:

aaa = c("RT alone", "no RT", "CT/RT", "adj.RTx", "RT/CT", "lang, RT+","npo RT" )

最佳答案

(?<=[no] )RT匹配任何 RT紧接在 "n " 之前或"o " .

你应该使用否定的lookbehind,

"(?<!no )RT"

请参阅regex demo .

或者,如果您需要检查整个单词 no ,

"(?<!\\bno )RT"

参见this regex demo .

在这里,(?<!no )确保没有no 紧邻当前位置的左侧,然后才 RT已被消耗。

关于r - 在 R (perl) 上使用正则表达式在向量中查找符合条件的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52093638/

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