В данной статье мы рассмотрим регулярные выражения в Scala. Назначение класса Regex в Scala такое же, как и в других языках программирования – выявление указанных шаблонов в символьных строках.
Рассмотрим простой пример:
package net.proselyte.scalatutorial.regex
/**
  * This is simple Scala class the demonstrates Regex in Scala.
  *
  * @author Eugene Suleimanov
  */
object RegexDemo {
  def main(args: Array[String]) {
    val pattern = "Scala Developer".r;
    val scalaDeveloper = "Eugene Suleimanov is a Java/Scala Developer";
    println(pattern findFirstIn scalaDeveloper);
  }
}
Результатом работы данной программы будет следующий вывод в консоль:
Some(Scala Developer)
В данном случае мы создаём строку и вызываем у неё метод r(). Компилятор преобразует данную строку в RichString и вызывает метода, который получает экземпляр класса Regex. После этого мы вызываем метод findFirstIn, который возвращает нам первое совпадение в строке.
Кроме этого, мы можем не только находить, но и заменять части строки:
package net.proselyte.scalatutorial.regex
/**
  * This is simple Scala class the demonstrates Regex with replace in Scala.
  *
  * @author Eugene Suleimanov
  */
object RegexReplaceDemo {
  def main(args: Array[String]) {
    val pattern = "C".r;
    val scalaDeveloper = "Eugene Suleimanov is C developer";
    println(pattern replaceAllIn(scalaDeveloper, "Java/Scala"));
  }
}
В результате выполнения данной программы мы получим следующий вывод в консоль:
Eugene Suleimanov is Java/Scala developer
В данном случае мы заменили C (язык программирования Си) на Java/Scala.
На этом мы заканчиваем изучение регулярных выражений в Scala.
В следующей статье мы познакомимся с понятием экстракторов в данном языке программирования.
 ![]()