Hintergrund
Dies ist der erste Teil eines 3-Loch-Golfplatzes zur Textverarbeitung. Die übergreifende Idee ist, dass, wenn Sie einen Eingabetext nehmen und ihn durch die Lösungen für alle drei Herausforderungen leiten (mit einer kleinen Menge Klebercode), ein schön formatierter Absatz ausgegeben wird. In dieser ersten Herausforderung besteht Ihre Aufgabe darin, einen Textabschnitt unter Verwendung vorgegebener Trennmuster zu trennen.
Eingang
Ihr Programm muss zwei Zeichenfolgen-Eingaben annehmen: eine Textzeile und eine Liste der Silbentrennungsmuster. Die erste Eingabe ist einfach eine nicht leere Zeichenfolge aus druckbaren ASCII-Zeichen und Leerzeichen. Es enthält keine Zeilenumbrüche oder Tildes ~
. Die zweite Eingabe ist eine durch Kommas getrennte Liste von Wörtern, die aus durch Tilden getrennten Silben von ASCII-Kleinbuchstaben bestehen. Ein Beispiel ist ex~cel~lent,pro~gram~ming,abil~i~ties
.
Ausgabe
Ihr Programm ändert die erste Eingabe folgendermaßen. Jedes Wort (maximaler Teilstring aus alphabetischen ASCII-Zeichen), dessen mit Bindestrich versehene Kleinbuchstaben in der zweiten Eingabe enthalten sind, ist durch diese mit Bindestrich versehene Version zu ersetzen, wobei die Groß- und Kleinschreibung beizubehalten ist. Mit der obigen Beispielliste, wenn der Text das Wort enthält Excellent
, wird es ersetzt durch Ex~cel~lent
; jedoch Excellently
soll nicht verändert werden. Ihre Ausgabe soll diese modifizierte Zeichenfolge sein.
Detaillierte Regeln und Wertung
Zu den Eingaben können Sie folgendes annehmen:
- Die erste Eingabe enthält keine Tilden und keine führenden, nachfolgenden oder wiederholten Leerzeichen. Es ist nicht leer.
- Die zweite Eingabe enthält mindestens ein Wort und jedes Wort darin enthält mindestens zwei Silben. Jede Silbe ist nicht leer.
- Die zweite Eingabe enthält kein Wort, das als Silbe in einem anderen Wort vorkommt.
Bei Bedarf können Sie die Reihenfolge der beiden Eingaben ändern und der Ausgabe optional eine abschließende Newline hinzufügen.
Sie können eine Funktion oder ein vollständiges Programm schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
Diese sind im Format aufgelistet 1st input [newline] 2nd input [newline] output
.
Excellent programming abilities, you work excellently!
ex~cel~lent,pro~gram~ming,abil~i~ties
Ex~cel~lent pro~gram~ming abil~i~ties, you work excellently!
Superman (sometimes incorrectly spelled "Super-man") is super #&%@ing strong.
su~per,some~times,in~cor~rectly,spell~ing
Superman (some~times in~cor~rectly spelled "Su~per-man") is su~per #&%@ing strong.
IncONsISTent caPItalizATIon!
in~con~sis~tent,cap~i~tal~iza~tion
In~cON~sIS~Tent caP~I~tal~izA~TIon!
Such short words.
awk~ward
Such short words.
Digits123 are456cool789.
dig~its,dig~i~tal,are~cool
Dig~its123 are456cool789.
magic magic
ma~gic
ma~gic ma~gic
Jeder mögliche Silbentrennungsfehler bei dieser Abfrage ist auf dieses Silbentrennungswerkzeug zurückzuführen .
#programming!
noch von einer zweiten Eingabe von beeinflusstpro~gram~ming
)? Zählen auch Zahlen nicht (dh sind nur alphabetische Zeichen erlaubt)?Antworten:
Pip,
6054 BytesGitHub-Repository für Pip
Übernimmt Eingaben als Befehlszeilenargumente (was Anführungszeichen um Eingabe 1 erfordert, vorausgesetzt, sie enthalten Leerzeichen). Es wird kein abschließender Zeilenumbruch gedruckt (fügen Sie
x
am Ende des Programms einen hinzu, um einen hinzuzufügen).Etwas ungolfed, mit Kommentaren:
Probelauf:
quelle
Netzhaut , 88 Bytes
Zu
\n
Zählzwecken wird jede Zeile in eine separate Datei verschoben , durch aktuelle Zeilenumbrüche ersetzt und<empty>
ist eine leere Datei. Der Einfachheit halber können Sie den obigen Code aus einer einzelnen Datei (wobei<empty>
es sich um eine leere Zeile handelt) ausführen, wenn Sie das-s
Interpreter-Flag verwenden.quelle
Javascript ES6,
117141 ZeichenPrüfung:
quelle
Javascript (ES6),
173169Grundlegende reguläre Ausdrücke suchen und ersetzen
Geige
Bearbeiten: Fehler für Testfall behoben
magic magic
,ma~gic
quelle
f("magic magic", "ma~gic")
kehrt zurück"ma~gic magic"
Perl, 146
Schon beim ersten Versuch lässt sich vieles verkürzen - geht morgen weiter!
quelle