gpt4 book ai didi

r - 匹配字符串,但前提是不带其他字符串

转载 作者:行者123 更新时间:2023-12-04 03:04:06 26 4
gpt4 key购买 nike

假设我有向量字符串:

v = c("SPX.Close", "AAPL.Low", "Lo", "LowPrice", "PriceLow", "low")

如何编写将匹配所有类似于短语“low”的字符串的正则表达式?
grep("lo", v, ignore.case=T) # 1 2 3 4 5 6 7
这也匹配我不想要的第一个字符串。

仅当前面没有字母 lo时,才如何匹配 c

最佳答案

负向后看(R中的PCRE)

R使用支持后向的PCRE引擎。做这个:

grep("(?<!c)lo", subject, perl=TRUE, value=TRUE, ignore.case=TRUE);
(?<!c)后面的负数表示当前位置之前的不是 c
选项2:检查大写字母,打开不区分大小写的内联

给定您的输入,一个更通用的选择是断言 lo之前没有大写字母:
grep("(?<![A-Z])(?i)lo", subject, perl=TRUE, value=TRUE);

对于此选项,我们使用内联修饰符 (?i)启用不区分大小写的功能,但是仅在检查位置前没有大写字母之后才能使用。

引用
  • Inline Modifiers
  • Mastering Lookahead and Lookbehind
  • Lookahead and Lookbehind Zero-Length Assertions
  • 关于r - 匹配字符串,但前提是不带其他字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25057065/

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