Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 将包含特殊字符的字符串与不包含特殊字符的字符串进行匹配_Regex_Google Sheets_Google Sheets Formula_Diacritics_Google Query Language - Fatal编程技术网

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

Regex 将包含特殊字符的字符串与不包含特殊字符的字符串进行匹配,regex,google-sheets,google-sheets-formula,diacritics,google-query-language,Regex,Google Sheets,Google Sheets Formula,Diacritics,Google Query Language,我正在尝试使用GoogleSheets查询匹配字符串,其中两个字符串都不确定是否包含特殊字符。我会尽力解释: 我有一个数据表 +-----+------+-----+-----+ | A | B | C | D | |x | y |ø |z | |xx | yy |á |zz | |xxx | yyy |e |zzz | +-----+------+-----+-----+ 我的查询函数如下所示: =QUERY(A1:D3

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

我有一个数据表

+-----+------+-----+-----+
|  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”并具有匹配项-现在查询将返回第二行

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

最后,这里是我的主要问题所在:
(C='a')
。除非我检查“a”的每一个重音变体,否则我想不出一种方法来匹配“a”,但这似乎很愚蠢。
遗憾的是,像
“…WHERE(CUSTOM_FUNCTION(C)='a')”这样的操作也是不可能的

正如我前面提到的,匹配的任何一侧都可能包含或不包含重音字符/特殊字符。
我还应该提到,它将不仅仅是一个字符,而是一个完整的字符串


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

您可以使用
过滤器
公式,而不是
查询
公式

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

使用的功能:

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