Wie kann ich 2 Saiten gleichzeitig ersetzen? Nehmen wir zum Beispiel an, dass ich eine Zeichenfolge wie folgt habe:
str1="AAAA BBBB CCCC DDDD"
ich möchte jedes "AAAA" durch "CCCC" und jedes "CCCC" durch "AAAA" ersetzen, aber wenn ich das tat:
str1.gsub ("AAAA", "CCCC") # CCCC BBBB CCCC DDDD
str1.gsub ("CCCC", "AAAA") # AAAA BBBB AAAA DDDD
was ich str1 möchte " CCCC BBBB AAAA DDDD"
Allgemeine Antwort:
Verwenden Sie einen Regex, um AAAA und CCCC zu vergleichen, und ersetzen Sie dann jedes Match durch CCCC und AAAA.
Bearbeiten , um die Verwirrung zu beseitigen
%Vor%edit Ich dachte auch eleganter:)
%Vor%Eine Lösung (obwohl etwas, das auf Regex basiert, am besten wäre) wäre etwas in der Art, einen Ersatz-Hash als solchen zu erstellen, der nach Bedarf erweitert werden kann. Ich füge das schnell zusammen, um das zu demonstrieren. Ich bin mir sicher, mit ein wenig mehr Liebe und Sorgfalt können Sie etwas eleganteres entwickeln, das genau so funktioniert, wie diese Implementierung nur für Strings mit Leerzeichen funktioniert.
%Vor%