2017-07-12 2 views
0

Ich habe als Zeichenfolge wie "pas" und "with_pas". Ich möchte es durch eine leere Zeichenfolge ersetzen. Jetzt mache ich alsRuby String mit gsub mit Bedingungen für mehrere Strings ersetzen

string.gsub("pas","").gsub("with_pas","") 

In einigen Szenario i die Zeichenfolge erhalten folgt als „pas“ und in einem anderen mit „with_pas“.

Gibt es einen besseren Weg, dies zu tun?

Antwort

2

Wie wäre es mit einem Regex?

string.gsub(/(with_)?pas/, "") 
3

Sie können Ihren aktuellen Ansatz verwenden, aber die Reihenfolge ändern müssen, sonst wird es nicht wie erwartet:

string.gsub("with_pas","").gsub("pas","") 
+1

Das ist ein guter Fang! –

0
str.gsub(/pas|with_pas/, '').squeeze 

Dadurch werden die Wörter entfernen und squeeze wird entfernen der zusätzliche Platz, den gsub hinzugefügt.