regex - 将包含特殊字符的字符串与不包含特殊字符的字符串匹配
问题描述
我正在尝试使用 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' 并且有一个匹配项 - 现在查询将返回第二行。(我在这里找到了一个替换字符串中所有重音字符的好方法。)
最后,这是我的主要问题所在:
(C = 'a')
. 我想不出办法让它匹配“á”,除非我检查“a”的每个重音变体,但这似乎很愚蠢。可悲
的是,也不可能做类似的事情。"... WHERE (CUSTOM_FUNCTION(C) = 'a')"
正如我之前提到的,匹配的任何一方都可能包含也可能不包含重音/特殊字符。
我还应该提到它不会只是一个字符,它将是一个完整的字符串。
如果有人对此有任何可能的解决方案,将不胜感激。
解决方案
QUERY
您可以使用公式代替FILTER
公式。
=FILTER(A2:D22,REGEXMATCH(C2:C22,"ø|è|á")=TRUE)
(请根据您的需要调整范围。您还可以添加/删除更多特殊字符。)
使用的功能:
推荐阅读
- python - 无法更改数据类型以通过 stats CDF 函数
- git - 我如何查看 github 分叉是否可能比原始分叉更远?
- bash - 如何检查两个文件夹中的文件是否相同 Bash
- reactjs - 在 React 中修补 AutoComplete
- powerbi - PowerBI DAX 用于供应商数量和年度支出
- linux - 为什么 vm_area_struct 有 start_code、end_code 字段?
- python - pandas group by with isin 语句返回索引 true/false
- python - KeyError: 20,不确定是什么问题
- python - 如何使用 Boto 将文件上传到 S3 存储桶上的确切位置
- c# - 使用 .net 核心代码越南语字符调用 api 时出错