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]"))
我想检查一个单元格中是否有一个词而不是另一个词。 In
我想检查字符串 "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]"))