Ah, noch eine meiner egoistischen Verwendungen dieses Stapels .
Als Chromebook-Besitzer benutze ich häufig die Ace IDE, den von Cloud9 verwendeten Editor. Es verfügt über viele Tools für den Umgang mit übermäßigem Leerraum, aber es fehlt vor allem eines: das Löschen von Leerzeilen.
Ihre heutige Mission ist es, eine Eingabe von einem Ort zu erhalten, an den ich kopieren und einfügen kann ;)
, etwas Identisches auszugeben, alle Leerzeichen und Tabulatoren in ansonsten leeren Zeilen zu speichern.
Ich werde einige Beispiele geben, wobei #
s für zu entfernende Leerzeichen steht.
EINGANG 1:
if (this.Color !== 'blue') {
##
this.Color = 'blue';
}
AUSGABE:
if (this.Color !== 'blue') {
[empty line]
this.Color = 'blue';
}
EINGANG 2:
function outputSomething(times) {
for (var iter = 0; iter < times; iter++) {
console.log('"# # " represents a tabulator');
// This is a comment
# #
}}
AUSGABE:
function outputSomething(times) {
for (var iter = 0; iter < times; iter++) {
console.log('"# # " represents a tabulator');
// This is a comment
[empty line]
}}
EINGANG 3:
var x = 'Do you prefer spaces or tabs?';
var y = 'I\'m using both here. Sue me.';
# # ####
console.log(x + ' ' + y);
AUSGABE:
var x = 'Do you prefer spaces or tabs?';
var y = 'I\'m using both here. Sue me.';
[empty line]
console.log(x + ' ' + y);
Sie können die Eingabe beliebig weiterverarbeiten. Ausgabe überall, solange ich sie kopieren und einfügen kann [ ;)
].
Es gelten Standardlücken, die kürzeste Antwort in Bytes gewinnt!
quelle
[empty line]
, oder überhaupt keine?Antworten:
Japt ,
10 8 6 54 BytesProbieren Sie es online!
Erläuterung
Zerlegt also
mx1R
die Zeichenkette,R
die eine neue Zeile ist, schneidet die rechte Seite jeder Zeile mitx1
und verbindet die Zeichenketten erneut mit einer neuen Zeile.2 Bytes gespart dank ETHproductions.
quelle
®x1}R
.mx1R
das ganze Problem in 4 Byte ASCII zu lösen :-) (Diex1
automatisch interpretiert werdenm
als_x1}
mx1R
es funktionieren würde, aber es ist cool, dass es funktioniert!Retina , 5 Bytes
Probieren Sie es online!
Ein nicht so offensichtlicher Ansatz belohnt uns mit einer besseren Punktzahl :)
Erläuterung
G
Gibt dies als Grep-Stufe an, wobei nur die Zeilen beibehalten werden, in denen eine Übereinstimmung mit dem angegebenen regulären Ausdruck (\S
entspricht nicht-Leerzeichen) gefunden werden kann. Wenn es nicht für den Start%
wäre, würde dies Linien vollständig entfernen, anstatt sie nur zu "leeren".Das
%
ist ein Modifikator, der die Bühne gilt einmal für jede Zeile und schließt sich dann die Ergebnisse mit Zeilenumbrüchen: in unserem Fall bedeutet dies , dass die leere Zeichenkette von Grep für die nur aus Leerzeichen Zeilen zurückgegeben wird eine leere Zeile im Ergebnis werden.quelle
sed , 6 bytes
Probieren Sie es online!
quelle
s
Verfassung verwendet. Die Verwendung einer einfachen Übereinstimmungg
war eine clevere Methode, um ein paar Bytes zu sparen.sed
nicht\S
oder "etwas, das kein Leerzeichen ist". Oder doch?/\S/!g
V ,
5, 4 BytesProbieren Sie es online!
Erläuterung:
Hexdump:
quelle
JavaScript (ES6), 26 Byte
Ich verstehe nicht, warum das so viele positive Stimmen bekommt!
Versuch es
quelle
Python 3 ,
635536 BytesInput und Output sind Arrays von Strings. Mach mit
'\n'
.Für das ursprüngliche Programm der I / O-Zeichenfolgen:
Probieren Sie es online!
8 Bytes gespart dank @Rod!
Dank @LeakyNun 19 Bytes gespart!
quelle
CJam ,
1816 BytesBeachten Sie, dass die Zeichenfolge 1 Leerzeichen und 1 Tabulator enthält.
Probieren Sie es online!
Erläuterung
quelle
Retina , 8 Bytes
Eine wirklich sinnlose Herausforderung.
m
macht es mehrzeilig (ignoriert Zeilenvorschub).\s
Entspricht sowohl dem Leerzeichen als auch dem Tabulator.Probieren Sie es online!
quelle
Vim,
2018161310 BytesIch bin kein Vim-Experte, aber diese Frage muss von Vim beantwortet werden.
:%s/^\s*$<cr>
<cr>
ist ein Wagenrücklauf.Änderungsprotokoll:
:norm
statt:normal
(-2 Bytes)*
statt+
bedeutet, dass wir bereits leere Zeilen abgleichen, aber das spielt keine Rolle. Und jetzt können wir loswerden\v
( sehr magische Option) (-2 Bytes)quelle
:%s/^\s*$<cr>
AWK ,
1211 BytesProbieren Sie es online!
Ich hatte nur das Gefühl, dass AWK auch eine Antwort haben sollte
Es funktioniert durch:
quelle
APL (Dyalog) ,
1110 Bytes⎕R
ist ein Operator, der eine Funktion ableitet, die Sachen ersetzt. In diesem Fall wird alles, was mit der RegEx übereinstimmt, durch eine leere Zeichenfolge ersetzt.quelle
Ruby, 22 Bytes
Einfache Regex-Lösung
quelle
Java 7, 57 Bytes
Erläuterung:
Testcode:
Probieren Sie es hier aus.
quelle
Groovy, 31 Bytes
quelle
Perl 6 ,
1512 Bytes15
Versuch es
11 + 1
Weitgehend das gleiche wie oben.
-p
Führt den Code für jede Eingabezeile aus, fügt die Zeile ein$_
und druckt alles, was noch übrig ist$_
.s
wird an Ort und Stelle ersetzt, währendS
das Ergebnis zurückgegeben wird.:g
/ kümmert sich:global
as nicht-p
.quelle
Python 2 , 26 Bytes
Probieren Sie es online! Gibt eine Liste von Zeichenfolgen ein und aus.
Dies nutzt die Regel in den Kommentaren, dass nachfolgende Leerzeichen in nicht leeren Zeilen entfernt werden können.
quelle
Vim,
139 Bytes:v/\S/le↵
Bearbeitungen:
Ursprüngliche Antwort:
:v/\S/d↵
(basierend auf dieser vim Frage zu SO ).Es löscht leere Zeilen, was nicht das erwartete Verhalten ist.
Gültige Antwort mit vglobal :
:v/\S/norm D↵
Verwenden Sie jetzt den Befehl left-align ex anstelle von
normal D
quelle
C 168 Bytes
Detailliert
quelle
C 100 Bytes
Sehen Sie , wie es online funktioniert .
quelle
QuadR , 5 Bytes
Probieren Sie es online!
\s+
Ersetzen Sie ein oder mehrere Whitespace-Zeichen, gefolgt vom$
Zeilenendemit nichts
quelle