удалить несколько элементов из списка в kdb - PullRequest
1 голос
/ 13 июня 2019

Ниже приведен список таблиц

q)tables[]
`abc`def`j`l_data`l_data1`l_data2`s`t

Я пытаюсь удалить несколько имен таблиц из списка имен таблиц и с треском проваливаюсь, после долгих усилий можно было бы подумать о приведенном ниже коде, который не обеспечивает ожидаемый вывод

(string each tables[])_/:(string each tables[])?("def";"l_data*") 
/ Trying to remove tables - def, all table names like l_data*
/ Expected output - `abc`j`s`t

Не могу придумать решение с использованием интер.

Ответы [ 2 ]

4 голосов
/ 13 июня 2019
 q) a where all not (a:tables[]) like/: ("def";"l_data*")
1 голос
/ 13 июня 2019

В качестве альтернативы вы можете избежать каждого правильного наречия и всей функции, используя, кроме как:

(tables[] where not tables[] like "l_data*") except `def

Также стоит отметить, что для преобразования строк нет необходимости использовать регулярное выражение

...