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

q / KDB+ How to iterate through list of strings

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

names:("Saint Denis";"Rhodes";"Strawberry";"Valentine")

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

我能得到的最远的是:

{[x]x?"o"} each names

正确的方法是什么?

提前致谢!

你可以使用类似下面的东西

q)names where "R" in/: names
"Rhodes"
q)names where any each "rR" in/: names
"Rhodes"
"Strawberry"

您可以像这样使用 like keyword with a regular expression

q)names where names like "*[Rr]*"
"Rhodes"
"Strawberry"

另外两个备选方案是:

q)names where "r" in'lower names
"Rhodes"
"Strawberry"

q)names where any"Rr"in'\:names
"Rhodes"
"Strawberry"