查询不过滤由 | 分隔的两个值在 NOT CONTAINS 字符串中

Query does not filter from two values separated by | in NOT CONTAINS string

我正在使用公式:

=ARRAYFORMULA(QUERY(TRIM(IMPORTXML("https://www.livescores.com/","//div[@class='content']//div[contains(@class,'row-gray')]")),"Where not Col1 contains 'Postp|Canc' "))

但是由于某些原因 'Postp|Canc' 没有删除包含这些值的行,我做错了什么?

| 是正则表达式,仅在查询中 matches 是正则表达式属性。使用:

=ARRAYFORMULA(QUERY(TRIM(IMPORTXML("https://www.livescores.com/",
 "//div[@class='content']//div[contains(@class,'row-gray')]")),
 "where not Col1 matches '.*Postp.*|.*Canc.*'"))

或:

=ARRAYFORMULA(QUERY(TRIM(IMPORTXML("https://www.livescores.com/",
 "//div[@class='content']//div[contains(@class,'row-gray')]")),
 "where not Col1 contains 'Postp' 
     or not Col1 contains 'Canc'"))

在这个回答中,我想建议修改xpath。修改后的xpath如下

修改后的 xpath:

//div[@class='content']//div[div[@class='min'][not(contains(text(),'Postp') or contains(text(),'Canc'))]]

修改后的公式:

=IMPORTXML("https://www.livescores.com/","//div[@class='content']//div[div[@class='min'][not(contains(text(),'Postp') or contains(text(),'Canc'))]]")

结果:

参考: