Регулярные выражения
Здесь описаны функции для работы с регулярными выражениями.

Функции

FindFirstRegExp(str src, str re) arr.str

Функция FindFirstRegExp находит первое вхождение регулярного выражения re в указанной строке src. Функция возвращает массив строк. Первый элемент содержит подстроку совпадающую с регулярным выражением, остальные элементы содержат значения групп (...), если они определены в регулярном выражении.
1
arr.str a &= FindFirstRegExp(`This45i33s a isi777s inis1i2sg`, `is(\d*)i(\d+)s`)
2
// a = {`is45i33s`, `45`, `33`}
Copied!

FindRegExp(str src, str re) arr.arr.str

Функция FindRegExp находит все вхождения регулярного выражения re в указанной строке src. Функция возвращает массив массивов. Первый элемент в каждом из массивов содержит подстроку совпадающую с регулярным выражением.
1
arr.arr.str a &= FindRegExp(`My email is [email protected]`, `(\w+)@(\w+)\.(\w+)`)
2
// a = { { `[email protected]`, `xyz`, `example`, `com`} }
3
a &= FindRegExp(`This is a test string`, `i.`)
4
// a = { { `is` }, {`is`}, {`in`} }
Copied!

Match(str s, str re) bool

Функция Match определяет содержит ли данная строка вхождение указанного регулярного выражения.
1
bool a = Match(`somethiabng striabnbg`, `a.b`) // false
2
a = Match(`somethianbg string`, `a.b`) // true
Copied!

RegExp(str src, str re) str

Функция RegExp возвращает первое вхождение регулярного выражения re в указанной строке src. Если соответствия не найдено, то возвращается пустая строка.
1
str input = "This is a string тестовое значение"
2
ret = RegExp(input, `is (.{2})`) + RegExp(input, `е(.+?)е`)
3
// isстово
Copied!

ReplaceRegExp(str src, str re, str repl) str

Функция ReplaceRegExp находит все вхождения регулярного выражения re в указанной строке src и заменяет их на строку repl. В параметре repl можно указывать $i или ${i} для i-го подсовпадения.
1
str s = ReplaceRegExp("This is a string", `i(.{2})`, "xyz")
2
// Thxyzxyza strxyz
3
s = ReplaceRegExp(" email is [email protected]", `(\w+)@(\w+)\.(\w+)`, "${3}.${2}@zzz")
4
// email is [email protected]
Copied!
Last modified 11mo ago