2017-01-24 8 views
-1

Ich bin neu in Scala und Regex.Finden Teilstring beliebiger Kombination aus String mit einer beliebigen Kombination

Ich stehe vor dem Problem, das Wort/die Wörter aus der Zeichenfolge zu ersetzen.

Betrachte ich habe folgendes Array von Strings als addressArray, aus dem ich "East Street" finden möchte, was ist die effiziente Möglichkeit, Zeichenfolge aus Strings zu finden.

Ich möchte jedes Auftreten von Oststraße von AdresseArray entfernen.

val addressArray = Array("shyam east street near corporation bank pune", 
         "shyam eaststreet near corporation bank pune", 
         "shyameast street near corporation bank pune", 
         "shyam east streetnear corporation bank pune", 
         "shyameaststreet near corporation bank pune", 
         "shyam eaststreetnear corporation bank pune") 

val stringtoFind = "east street" 

Hinweis: wie ich will nicht, weißen Raum mit leeren und concat Zeichenfolge ersetzen, wie ich Rest der Zeichenfolge will.

Vielen Dank im Voraus.

Antwort

1

Wenn Sie nur die genauen Worte entfernen möchten, können Sie eine ersetzen, dann ist es einfacher als regex:

addressArray.map(_.replace(stringtoFind, "")) 

Wenn Sie komplexere Regeln, zum Beispiel Spiel sowohl „eaststreet“ und „Ost-Straße “, Sie einen regulären Ausdruck wie folgt verwenden können:

val stringtoFind = """east\s*street""".r 
addressArray.map(s => stringtoFind.replaceAllIn(s, "")) 
+0

ich möchte ** östlich Straße entfernen ** auch wenn seine mit anderen String wie ** shyameast Straße **, ** shyameaststreet **, ** eaststreetnear * * und so weiter. – Sam

+0

@ user1453370 siehe meine aktualisierte Antwort. es sollte die erwarteten Ergebnisse geben – nmat

+0

Danke Seine Arbeit :) – Sam

Verwandte Themen