2017-01-24 19 views
-1

Я новичок в scala и regex.найти подстроку любой комбинации из строки с любой комбинацией

У меня возникла проблема с заменой слова/слов из строки.

У меня есть следующий массив строк как адресArray, из которого я хочу найти «восточная улица» Что такое эффективный способ поиска строки из строк.

Я хочу удалить каждое событие east street с адресаArray.

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