Regex 使用正则表达式进行自定义排序?
我有两列,第一列是名字列表,第二列是他们的评级。我想使用自定义排序,为此我使用以下命令(找到它) : 这是可行的,但我的评分实际上是:Regex 使用正则表达式进行自定义排序?,regex,sorting,google-sheets,re2,Regex,Sorting,Google Sheets,Re2,我有两列,第一列是名字列表,第二列是他们的评级。我想使用自定义排序,为此我使用以下命令(找到它) : 这是可行的,但我的评分实际上是: 太好了 伟大的 伟大的- 好, 好 好的- 好, 有没有办法把上面的公式和正则表达式结合起来?大致如下: =sort(A33:B50;match(B33:B50;{"Great*";"Good*";"OK*";"Bad*");true) 这真的没什么用。查看了Google sheets的正则表达式,但在这种情况下找不到任何能起作用的正则表达式 干杯 PS
- 太好了
- 伟大的
- 伟大的-
- 好,
- 好
- 好的-
- 好,
=sort(A33:B50;match(B33:B50;{"Great*";"Good*";"OK*";"Bad*");true)
这真的没什么用。查看了Google sheets的正则表达式,但在这种情况下找不到任何能起作用的正则表达式
干杯
PS:一个解决方法是
=sort(A33:B50;match(B33:B50;{"Great+";"Great";"Great-";"Good+";"Good";"Good-";"OK+";"OK";"OK-";"Bad+";"Bad";"Bad-");true)
但我很好奇,是否有一种不那么单调的排序方法(A1:B7;匹配(regexextract(B1:B7;“Great | Good | OK | Bad”);{“Great”;“Good”;“OK”;“Bad”};0;true)
- 管道
用于或登录Regex|
- 将
和A1:B7
更改为您的范围B1:B7
- 对于排序
将正则表达式更改为Good+Good-Good-
,将数组更改为“Great | Good\+| Good\-| Good | OK | Bad”
{“Great”;“Good+”;“Good”;“OK”;“Bad”
这实际上排序不正确(示例:)。结果的顺序是:“非常非常好-(?)非常好+(?)非常好(?)好,好,好,好,好,好,坏”对不起,我在
匹配
函数中错过了0以获得精确匹配。请尝试排序(A1:B7;匹配(regexextract(B1:B7;“Great | Good | OK | Bad”){“Great”;“Good”;“OK”;“Bad”};0);true)。它首先排序Good-Good Good+(有没有办法将其添加到公式中?)。排序的其余部分可以正常工作。找到了一种方法:=sort(A33:B50;match(regexextract(B33:B50;“Great | Good\+| Good\-| Good | OK | Bomb”);{“Great”;“Good+”;“Good”;“Bomb”;(0);true)这是违反直觉的:regextract中的顺序是Good\+| Good\-| Good-| Good,Good和数组中的顺序是{“Great”;“Good”;“Good”;“Good”;“Bomb”;“Good”;“Bomb”}(我猜正则表达式中的Good已经捕捉到了好的实例)@jlo,谢谢你的研究。你说得对,Good首先捕捉到了好的实例。我已经编辑了答案。
=sort(A33:B50;match(B33:B50;{"Great+";"Great";"Great-";"Good+";"Good";"Good-";"OK+";"OK";"OK-";"Bad+";"Bad";"Bad-");true)