将包含特殊字符的字符串与不包含特殊字符的字符串进行匹配

时间:2020-09-06 12:26:51

标签: regex google-sheets google-sheets-formula diacritics google-query-language

我正在尝试使用Google表格查询来匹配字符串,其中两个字符串都不确定是否包含特殊字符。我会尽力解释:

我有一个数据表

<div><span id="MapTwoResultOne"></span></div>
<div><span id="MapTwoResultTwo"></span></div>
<div><span id="MapTwoResultThree"></span></div>

我的查询功能看起来像这样:

+-----+------+-----+-----+
|  A  |   B  |  C  |  D  |
|x    | y    |ø    |z    |
|xx   | yy   |á    |zz   |
|xxx  | yyy  |e    |zzz  |
+-----+------+-----+-----+

当前,使用此查询将仅返回1行,因为=QUERY(A1:D3, "SELECT * WHERE (C = 'ø') OR (C = 'è') OR (C = 'a')") 与'ø'完全匹配,但是其他任何一个都不匹配。

对于(C = 'ø'),我们可以将字符串中的所有重音字符替换为它们的未重音字符。
在这种情况下,“è”变为“ e”并具有匹配项-现在查询将返回第二行。

(我找到了替换字符串here中所有重音字符的好方法。)

最后,这是我的主要问题所在:(C = 'è')。除非我检查了'a'的每个重音变体,否则我想不出一种使其与'á'相匹配的方法,但这似乎很愚蠢。
不幸的是,也无法执行类似(C = 'a')的事情。

正如我之前提到的,比赛的每一边可能包含也可能不包含重音/特殊字符。
我还应该提到,它将不仅仅是一个字符,而是一个完整的字符串。

如果有人对此有任何可能的解决方案,将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用QUERY公式代替FILTER公式。

=FILTER(A2:D22,REGEXMATCH(C2:C22,"ø|è|á")=TRUE)

(请根据需要调整范围。您还可以添加/删除更多特殊字符。)

enter image description here

使用的功能:

相关问题