2016-04-13 12 views

答えて

2

各繰り返しスペースを対として扱う次のものを使用すると、 を使用し、overを使用してこれらを単一のスペースで '置き換える'ことができます。

q)x:"This   is a test" 

q)(" "sv" "vs)/[x] 

"This is a test" 
+0

かなりきちんとした!ありがとう!しかし、Qで正規表現を使用することはできませんか?私はこれをうまく行かせることができず、潜在的により複雑なルールを持っています。ありがとうございました。 – iwbabn

+0

qは基本操作(* ,?および[])のみをサポートするため、外部ライブラリをインポートする必要があります http://qopotam.us/?p=pcre&http://thesweeheng.wordpress .com/2008/07/14/regular-expressions-for-q / –

0

vssvを使用して、より効率的にこれを行うことが可能です。

ssr[;" ";" "]/["This   is a test"] 
"This is a test" 

あなたが提供した例が失敗したため、限られた正規表現のオプションに:あなたが継続的に二つの空間のブロックを除去するために、/上副詞でssrを使用することができますeach-prior ':

{x where not(and':)null x}"This   is a test" 
"This is a test" 

代替副詞を使いますこのシーケンスで+を使用してください。"[ ]+"は、サポートされていない操作の例です。 regex in qの詳細は、kx wikiを参照してください。

関連する問題