【发布时间】:2020-12-25 01:57:36
【问题描述】:
我正在尝试使用 Google 表格查询来匹配字符串,其中两个字符串都不确定是否包含特殊字符。我会尽量解释清楚:
我有一个数据表
+-----+------+-----+-----+
| A | B | C | D |
|x | y |ø |z |
|xx | yy |á |zz |
|xxx | yyy |e |zzz |
+-----+------+-----+-----+
我的查询函数如下所示:
=QUERY(A1:D3, "SELECT * WHERE (C = 'ø') OR (C = 'è') OR (C = 'a')")
目前,使用此查询将仅返回 1 行,因为
(C = 'ø')与 'ø' 完全匹配,但没有其他匹配。
对于
(C = 'è'),我们可以将字符串中的所有重音字符替换为它们的非重音字符。
在这种情况下,'è' 变为 'e' 并且有一个匹配项 - 现在查询将返回第二行。(我找到了一个很好的方法来替换字符串 here 中的所有重音字符。)
最后,这是我的主要问题所在:
(C = 'a')。我想不出办法让它匹配“á”,除非我检查“a”的每个重音变体,但这似乎很愚蠢。
可悲的是,也不可能做类似"... WHERE (CUSTOM_FUNCTION(C) = 'a')"的事情。
正如我之前提到的,匹配的任何一方都可能包含也可能不包含重音/特殊字符。
我还要提一下,它不会只是一个字符,而是一个完整的字符串。
如果有人对此有任何可能的解决方案,将不胜感激。
【问题讨论】:
标签: regex google-sheets google-sheets-formula diacritics google-query-language