1
A
Antwort
2
Sie können das Folgende verwenden, das jedes sich wiederholende Leerzeichen als ein Paar behandelt, dann mit "over", "ersetzt" diese durch ein einzelnes Leerzeichen.
q)x:"This is a test"
q)(" "sv" "vs)/[x]
"This is a test"
0
Es ist möglich, diese effizient zu nutzen vs
und sv
mehr zu tun, dann. Unter Verwendung des Adverb each-prior ':
{x where not(and':)null x}"This is a test"
"This is a test"
Alternative Sie ssr
mit dem Adverb über /
um verwenden, können kontinuierlich Blöcke von zwei Räumen zu entfernen:
ssr[;" ";" "]/["This is a test"]
"This is a test"
Das Beispiel, das Sie aufgrund der begrenzten regex Optionen nicht zur Verfügung gestellt verfügbar Unter Verwendung von +
in dieser Sequenz ist "[ ]+"
ein Beispiel für eine Operation, die nicht unterstützt wird. Sie können mehr über regex in q auf dem kx Wiki lesen.
Ziemlich ordentlich! Vielen Dank! Ist es jedoch nicht möglich, Regex in Q zu verwenden? Ich kann das einfach nicht zum Laufen bringen und habe möglicherweise kompliziertere Regeln. Danke nochmal. – iwbabn
Möglicherweise müssen Sie eine externe Bibliothek importieren, da q nur grundlegende Operationen unterstützt (*,? Und []) Werfen Sie einen Blick auf http://qopotam.us/?p=pcre & http: //thesweeheng.wordpress .com/2008/07/14/Reguläre Ausdrücke-für-Q / –