Руководство по Scala. Регулярные выражения.

В данной статье мы рассмотрим регулярные выражения в 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.
В следующей статье мы познакомимся с понятием экстракторов в данном языке программирования.