我对kdb + q很新。我遇到过从字符串中提取数字的问题。
有什么建议吗?
示例:
"AZXER_1234_MARKET" should output 1234 //Assume that there is only one number in the
的字符串
答案 0 :(得分:3)
提取数字然后转换为所需类型。
q){"I"$x inter .Q.n} "AZXER_1234_MARKET"
1234i
q){"I"$x inter .Q.n} "AZXER_123411_MARKET"
123411i
q){"I"$x inter .Q.n} "AZXER_1234_56_MARKET"
123456i
q){"I"$x inter .Q.n} "AR_34_56_MAT"
3456i
答案 1 :(得分:2)
如果你有多个数字,这里是上面的变体,它允许一个字符串中有多个数字
q)nums:{"I"$((where n&differ n:x in .Q.n) cut x) inter\: .Q.n}
q)nums "this is 123 and this is 56"
123 56i
答案 2 :(得分:1)
如果我们假设字符串中只有一个数字,我可以建议以下内容:
q)"AZXER_1234_MARKET"inter .Q.n
"1234"
q)"A_5643_B"inter .Q.n
"5643"
然后你当然可以把它投射到你想要的任何类型。