2017-01-24 85 views
-1

我是scala和正則表達式的新手。查找字符串與任意組合的任意組合的子串

我面臨從字符串中替換單詞/單詞的問題。

考慮我有以下數組字符串作爲addressArray從中我想要找到「東街」 什麼是從字符串查找字符串的有效方法。

我想從addressArray中刪除東部街道的所有發生。

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" 

注意:我不想用空格和concat字符串替換空格,因爲我希望字符串的其餘部分保持原樣。

在此先感謝。

回答

1

如果你想刪除只有那些確切的話,你可以做一個替代,它比使用正則表達式簡單:

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

如果你想更復雜的規則,例如同時匹配「eaststreet」和「東大街」,你可以使用正則表達式是這樣的:

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

我想刪除**東大街**即使它與其他字符串如** shyameast街**,** ** shyameaststreet,** eaststreetnear * * 等等。 – Sam

+0

@ user1453370看到我更新的答案。它應該給結果預期 – nmat

+0

謝謝它的工作:) – Sam

相關問題