从在KDB字符串中提取数(extract number from string in kdb)

2019-10-20 07:57发布

我很新的KDB + Q。 我遇到一个提取出若干字符串的这个问题。

有什么建议么?

例:

"AZXER_1234_MARKET" should output 1234 //Assume that there is only one number in the 

Answer 1:

提取号码,然后转换为需要的类型。

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


Answer 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


Answer 3:

我可以建议如下如果我们假设在字符串中只有一个号码:

q)"AZXER_1234_MARKET"inter .Q.n
"1234"
q)"A_5643_B"inter .Q.n
"5643"

然后,当然你也可以将它转换为任何你想要的类型。



文章来源: extract number from string in kdb
标签: kdb q-lang