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