regex - 使用正则表达式自定义排序?
问题描述
我有两列,第一列是名称列表,第二列是他们的评级。我想使用自定义排序,为此我使用以下内容(在此处找到):
=sort(A33:B50;match(B33:B50;{"Great";"Good";"OK";"Bad");true)
哪个有效,但我的评分实际上是:
- 很棒+
- 伟大的
- 伟大的-
- 好+
- 好的
- 好的-
- 好的+
- ...
有什么方法可以将上面的公式与正则表达式结合起来吗?类似这样的东西:
=sort(A33:B50;match(B33:B50;{"Great*";"Good*";"OK*";"Bad*");true)
这并没有真正做任何事情。检查了谷歌表的正则表达式公式,但在这种情况下找不到任何可以解决问题的方法。
干杯!
PS:解决方法是
=sort(A33:B50;match(B33:B50;{"Great+";"Great";"Great-";"Good+";"Good";"Good-";"OK+";"OK";"OK-";"Bad+";"Bad";"Bad-");true)
但我很好奇是否有一种不那么乏味的方法
解决方案
=sort(A1:B7;match(regexextract(B1:B7;"Great|Good|OK|Bad");{"Great";"Good";"OK";"Bad"};0);true)
- 管道
|
用于正则表达式中的 OR 登录。 - 改变
A1:B7
和B1:B7
你的范围。
编辑
- 排序
Good+ Good Good-
更改正则表达式为"Great|Good\+|Good\-|Good|OK|Bad"
,将数组更改为{"Great";"Good+";"Good";"Good-";"OK";"Bad"}
反直觉:正则提取中的顺序是 Good+|Good-|Good 并且在数组 {"Great";"Good+";"Good";"Good-";"OK";"Bomb"} 中(Good 在正则表达式已经在捕获 Good- 实例)
推荐阅读
- wordpress - 如何在wordpress中编辑隐藏表单
- python - Django:生产中的登录/密码管理?
- node.js - 无法从 lambda 函数的 dynamodb 获取数据
- android - MediaStore.ACTION_IMAGE_CAPTURE 的结果始终为 -1,但不返回任何数据
- android - 如何从 firebase 查询此数据并设置为 FirebaseRecyclerOptions
- c# - Global.asax 和 MasterPage 之间会发生什么?
- php - 当我选择等级时,如何从表 gaji 中获取 gaji
- perl - Outlook 不呈现已发送的电子邮件
- php - Laravel sanctum csrf cookie 每个请求?
- python-3.x - 尝试使用 python 打印一些表是 sqlite3