3

私はkdb + qにまったく慣れていません。文字列から数値を抽出するというこの問題に遭遇しました。

助言がありますか?

例:

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

ストリング

4

3 に答える 3

6

数値を抽出してから、必要な型にキャストします。

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
于 2014-06-17T15:05:09.230 に答える
2

複数の数字がある場合、これは上記のバリエーションで、1 つの文字列に複数の数字を含めることができます

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
于 2014-06-18T02:59:21.397 に答える
1

文字列内の数字が 1 つだけであると仮定すると、次のように提案できます。

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

もちろん、それを任意の型にキャストできます。

于 2014-06-17T15:08:00.337 に答える