Google 工作表查询适用于包含但不适用于匹配
Google Sheets Query Works with Contains but not with Matches
我不明白为什么我使用 Matches 的查询不起作用,而使用 contains 可以正常工作。我想最终将其他内容通过管道传输到匹配项中,但需要它先工作。
包含:=QUERY(Raw!A2:P,"SELECT * WHERE K contains '<m>, 5/2/2020' ",0)
匹配项:=QUERY(Raw!A2:P,"SELECT * WHERE K matches '.*<m>, 5/2/2020.*' ",0)
当我 remove/change 5 但没有 return 所有匹配时它半工作......提供的示例数据不允许测试但我测试了 2,3, 4,6 例如: =QUERY(Raw!A2:P,"SELECT * WHERE K matches '.*<m>, 3.*' ",0)
K 列中一个单元格的示例数据:
Keith <k>, 5/2/2020: @Me: Thank you
_______________________
Keith <k>, 5/2/2020: @S: this is some text
_______________________
Mo <m>, 5/2/2020: @Me: more text is here
_______________________
ME <me>, 5/6/2020: text is here
_______________________
Jonathan <j>, 5/6/2020: @Me: Thank your
_______________________
Jonathan <j>, 5/6/2020: @S: text
Google 工作表网络应用程序中的查询匹配(与官方移动应用程序不同)似乎不支持正则表达式标志,如单行模式:(?s)
。考虑在
中为这个 post 创建一个 link 问题
-
Google 工作表 > 帮助 > 帮助工作表改进。
解决方法:
查询功能似乎 运行 客户端不同于其他功能。如果支持使用,(?s)
喜欢:
=QUERY(Raw!A2:P,"SELECT * WHERE K matches '(?s).*<m>, 5/2/2020.*' ",0)
如果不是,使用(.|\n)
(任意字符或换行)模拟单行模式:
=QUERY(Raw!A2:P,"SELECT * WHERE K matches '(.|\n)*<m>, 5/2/2020(.|\n)*' ",0)
改用contains
。 contains
与 OR
应该模拟 matches
' 管道 |
连接。
=QUERY(Raw!A2:P,"SELECT * WHERE K contains "&JOIN( " or K contains ","'<m>, 5/2/2020'" ,"'<k>'")&"",0)
我不明白为什么我使用 Matches 的查询不起作用,而使用 contains 可以正常工作。我想最终将其他内容通过管道传输到匹配项中,但需要它先工作。
包含:=QUERY(Raw!A2:P,"SELECT * WHERE K contains '<m>, 5/2/2020' ",0)
匹配项:=QUERY(Raw!A2:P,"SELECT * WHERE K matches '.*<m>, 5/2/2020.*' ",0)
当我 remove/change 5 但没有 return 所有匹配时它半工作......提供的示例数据不允许测试但我测试了 2,3, 4,6 例如: =QUERY(Raw!A2:P,"SELECT * WHERE K matches '.*<m>, 3.*' ",0)
K 列中一个单元格的示例数据:
Keith <k>, 5/2/2020: @Me: Thank you
_______________________
Keith <k>, 5/2/2020: @S: this is some text
_______________________
Mo <m>, 5/2/2020: @Me: more text is here
_______________________
ME <me>, 5/6/2020: text is here
_______________________
Jonathan <j>, 5/6/2020: @Me: Thank your
_______________________
Jonathan <j>, 5/6/2020: @S: text
Google 工作表网络应用程序中的查询匹配(与官方移动应用程序不同)似乎不支持正则表达式标志,如单行模式:(?s)
。考虑在
Google 工作表 > 帮助 > 帮助工作表改进。
解决方法:
查询功能似乎 运行 客户端不同于其他功能。如果支持使用,
(?s)
喜欢:=QUERY(Raw!A2:P,"SELECT * WHERE K matches '(?s).*<m>, 5/2/2020.*' ",0)
如果不是,使用
(.|\n)
(任意字符或换行)模拟单行模式:=QUERY(Raw!A2:P,"SELECT * WHERE K matches '(.|\n)*<m>, 5/2/2020(.|\n)*' ",0)
改用
contains
。contains
与OR
应该模拟matches
' 管道|
连接。=QUERY(Raw!A2:P,"SELECT * WHERE K contains "&JOIN( " or K contains ","'<m>, 5/2/2020'" ,"'<k>'")&"",0)