gpt4 book ai didi

R 中精确匹配任意数量字符的正则表达式

转载 作者:行者123 更新时间:2023-12-02 17:34:43 24 4
gpt4 key购买 nike

我想使用正则表达式来计算字符精确连续出现的次数。令模式为"aa""bbb"比如说,次数"a" 恰好连续发生两次"b" 连续出现三次(它们的前后可以是任何字符,除了字符本身之外什么都没有)。如果测试向量是

c("baa", "aaaa", "aab", "aa", "bbba", "bbaabbb")

计数结果应如下:

enter image description here

匹配 "aa" 的模式是c("baa", "aab", "aa", "bbaabbb") &

匹配 "bbb" 的模式是c("bbba", "bbaabbb")

我用过"\\<" & "\\>"但它并没有给我想要的结果。如果有任何帮助,我将不胜感激。

最佳答案

要匹配恰好出现两次的字符“a”,您可以结合使用负向后查找和负向前查找。也就是说,您寻找的职位是

  • 不跟在字符“a”之后,
  • 包含字符串“aa”和
  • 后面不跟“a”

其正则表达式是 (?<!a)a{2}(?!a) .

示例:

test <- c("baa", "aaaa", "aab", "aa", "bbba", "bbaabbb")
grep("(?<!a)a{2}(?!a)", test, perl = TRUE, value = TRUE)
# [1] "baa" "aab" "aa" "bbaabbb"

匹配恰好出现三次的字符“b”的方法类似:

grep("(?<!b)b{3}(?!b)", test, perl = TRUE, value = TRUE)
# [1] "bbba" "bbaabbb"

关于R 中精确匹配任意数量字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734322/

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