q / KDB+ 如何遍历字符串列表

Jon*_*s M 1 kdb

我最近开始学习 q 编程语言,我发现这有点困难,因为我来自“传统”命令式、OOP 等语言背景。我正在尝试执行一个看似简单的任务 - 在列表中查找包含特定字符的字符串:

names:("Saint Denis";"Rhodes";"Strawberry";"Valentine")
Run Code Online (Sandbox Code Playgroud)

如何打印所有包含字母“R”的字符串?更好的是,“R”和“r”?

我能得到的最远是这样的:

{[x]x?"o"} each names
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

提前致谢!

小智 6

您可以将like关键字与正则表达式一起使用,如下所示:

q)names where names like "*[Rr]*"
"Rhodes"
"Strawberry"
Run Code Online (Sandbox Code Playgroud)