regex

Начиная с 1.4.0

Константы

Pattern : map =

17 элементов
{
  UNIX_LINES=1,
  CASE_INSENSITIVE=2,
  I=2,
  COMMENTS=4,
  MULTILINE=8,
  M=8,
  LITERAL=16,
  S=32,
  DOTALL=32,
  UNICODE_CASE=64,
  CANON_EQ=128,
  UNICODE_CHARACTER_CLASS=256,
  U=256,
  quote=def(s) { return string },
  matches=def(str,pattern) { return boolean },
  split=def(str,pattern,limit = 0) { return array },
  compile=def(pattern,flags = 0) { return PatternValue }
}

Функции

regex(pattern, flags = 0) — создаёт шаблон регулярного выражения и возвращает PatternValue

Типы

PatternValue

Функции

flags() — возвращает флаги шаблона

pattern() — возвращает шаблон в виде строки

matcher(input) — возвращает MatcherValue

matches(input) — проверяет, соответствует ли входная строка шаблону

split(input, limit = 0) — разбивает строку на основе совпадений шаблона

replaceCallback(input, callback) — заменяет строку результатом заданной функции

use regex
in = "пёс кот"
pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I)
println pattern.replaceCallback(in, def(m) = m.group(2) + "о" + m.group(1))
use regex
in = "пёс кот"
pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I)
println pattern.replaceCallback(in, def(m) = m.group(2) + "о" + m.group(1))

MatcherValue

Функции

start(group = ...) — возвращает начальную позицию найденного совпадения

end(group = ...) — возвращает позицию, следующую за последним символов найденного совпадения

find(start = 0) — сбрасывает состояние матчера и пытается найти следующее совпадение

group(group = 0) — возвращает найденную группу

pattern() — возвращает шаблон

region(start, end) — задаёт ограничения для текущего региона

replaceFirst(replacement) — заменяет первое совпадение на заданную строку

replaceAll(replacement) — заменяет все совпадения на заданную строку

replaceCallback(callback) — заменяет строку результатом заданной функции

use regex
in = "пёс кот"
pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I)
matcher = pattern.matcher(in)
println matcher.replaceCallback(def(m) = m.group(2) + "о" + m.group(1))

reset(input = "")

usePattern(patternvalue)

useAnchoringBounds(status)

hasAnchoringBounds()

useTransparentBounds(status)

hasTransparentBounds()

hitEnd()

lookingAt()

matches()

groupCount()

regionStart()

regionEnd()