Google 工作表中的正则表达式 "NOT" (RE2)

Regex "NOT" in Google Sheets (RE2)

我想检查一个单元格中是否有一个词而不是另一个词。 In there was some buzz around this matter but the elected solution included a script function.必须有更简单的方法来做到这一点。

我想检查字符串 "investimentos" 中是否存在字符串 "investimentos" 而 "fundos" 不存在。

我已经尝试过以下方法(免责声明:我是正则表达式的初学者):

=regexmatch("investimentos";"(investimentos)^(fundos)")
=regexmatch("investimentos";"(investimentos).*^(fundos)")
=regexmatch("investimentos";"(investimentos)(^fundos)")
=regexmatch("investimentos";"(investimentos).*(^fundos)")

我总是说假话。这是为什么?

RE2, so you cannot use the common logic to match one string excluding another 中没有环视支持。

如果否定值只有 1 个字符,您可以使用单个正则表达式来实现。像 ^[^I]*GO[^I]*$ 将匹配一个没有 I 但包含 GO 的字符串,但是如果您要排除的单词中有多个字符,它将不起作用。

使用

=AND(REGEXMATCH(A1;"investimentos");NOT(REGEXMATCH(A1;"fundos")))

尝试:

=(REGEXMATCH(A1; "investimentos"))*(NOT(REGEXMATCH(A1; "fundos")))

或:

=(REGEXMATCH(A1; "investimentos"))*(REGEXMATCH(A1; "[^fundos]"))