如何从由字符串组成的特定列中提取数字 例如:
(`category:"abc 124M def 154M" ; "hij 120M hij 174M" ; "stu 126M def 166M" ; "abx 67M def 66M" )
答案:
124,154
120,174
126,166
67,66
答案 0 :(得分:3)
可能会有更高效的答案,但这有效:
q)f:{except[;0Nj]"J"$" "vs?[x in "0123456789";x;" "]}
q)category
"abc 124M def 154M"
"hij 120M hij 174M"
"stu 126M def 166M"
"abx 67M def 66M"
q)f each category
124 154
120 174
126 166
67 66
答案 1 :(得分:0)
参见'inter'
q)myStrings:("he11o";"I am a p3rs0n")
q)myStrings inter\:.Q.n
"11"
"30"
q)
答案 2 :(得分:0)
对于您的示例,修复语法可以为我们提供表格:
show tab:([]category:("abc 124M def 154M" ; "hij 120M hij 174M" ; "stu 126M def 166M" ; "abx 67M def 66M"))
category
-------------------
"abc 124M def 154M"
"hij 120M hij 174M"
"stu 126M def 166M"
"abx 67M def 66M"
从这里我们只能包含带有inter
的数字字符和空格,拆分空格并转换以获取数字,不包括空值。
q){r@'where each not null r:"J"$" "vs/:x inter\:.Q.n," "}tab`category
124 154
120 174
126 166
67 66