EReg
Доступно на всех платформах
Класс EReg представляет регулярные выражения.
Хотя базовая работа и шаблоны работают последовательно на всех платформах, некоторые более сложные операции могут давать разные результаты. Это необходимо для сохранения определенного уровня производительности.
Экземпляры EReg могут быть созданы путем вызова конструктора или с помощью специального синтаксиса ~/pattern/modifier
Экземпляры EReg хранят внутреннее состояние, которое изменяется несколькими его методами.
Подробное описание поддерживаемых операций доступно по адресу https://haxe.org/manual/std-regex.html
Статические методы
staticescape(s:String):String
Экранировать строку s для использования в качестве части регулярного выражения.
Если s равно null, результат не определен.
Конструктор
new(r:String, opt:String)
Создаёт новое регулярное выражение с шаблоном r и модификаторами opt.
Это эквивалентно сокращённому синтаксису ~/r/opt
Если r или opt равны null, результат не определён.
Методы
map(s:String, f:EReg ‑> String):String
Вызывает функцию f для подстроки s которая соответствует EReg и заменяет эту подстроку результатом вызова f.
Функция f принимает объект EReg как первый аргумент и должна возвращать строку замены для соответствующей подстроки.
Если EReg this не соответствует ни одной подстроке, результат - s.
По умолчанию этот метод заменяет только первую соответствующую подстроку. Если установлен модификатор g, заменяются все соответствующие подстроки.
Если s или f равны null, результат не определён.
match(s:String):Bool
Определяет, соответствует ли регулярное выражение this строке s.
Этот метод изменяет внутреннее состояние.
Если s равно null, результат не определён.
matchSub(s:String, pos:Int, len:Int = -1):Bool
Определяет, соответствует ли регулярное выражение this подстроке строки s.
Функция ожидает, что pos и len описывают корректную подстроку s, в противном случае результат не определён. Для более надёжного поведения следует использовать this.match(s.substr(pos,len)).
Этот метод изменяет внутреннее состояние.
Если s равно null, результат не определён.
matched(n:Int):String
Возвращает совпавшую подгруппу n объекта EReg this.
Этот метод следует вызывать только после this.match или this.matchSub, и затем он работает со строкой, полученной в результате этой операции.
Индекс n соответствует n-й паре скобок в шаблоне объекта EReg this. Если такой подгруппы не существует, результат не определён.
Если n равно 0, возвращается вся соответствующая подстрока.
matchedLeft():String
Возвращает часть слева от последней совпавшей подстроки.
Если последнее обращение к this.match или this.matchSub ничего не совпало, результат не определён.
Если для сопоставления использовался модификатор g, возвращается только подстрока, расположенная слева от самого левого совпадения.
Результат не включает совпавшую часть.
matchedPos():{pos:Int, len:Int}
Возвращает позицию и длину последней совпавшей подстроки в строке, которая была в последний раз аргументом в this.match или this.matchSub.
Если последнее обращение к this.match или this.matchSub ничего не совпало, результат не определён.
Если для сопоставления использовался модификатор g, возвращается позиция и длина самой левой подстроки.
matchedRight():String
Возвращает часть справа от последней совпавшей подстроки.
Если последнее обращение к this.match или this.matchSub ничего не совпало, результат не определён.
Если для сопоставления использовался модификатор g, возвращается только подстрока, расположенная справа от самого левого совпадения.
Результат не включает совпавшую часть.
replace(s:String, by:String):String
Заменяет первую подстроку s которая соответствует EReg this на by.
Если EReg this не соответствует ни одной подстроке, результат - s.
По умолчанию этот метод заменяет только первую совпавшую подстроку. Если установлен модификатор g, заменяются все совпавшие подстроки.
Если by содержит ссылки на подгруппы, например, $1 или $2, цифра соответствует номеру совпавшей подгруппы, и её значение используется вместо ссылки. Если такой подгруппы не существует, замена не определена. Строка $$ становится $.
Если s или by равны null, результат не определён.
split(s:String):Array<String>
Разделяет строку s по всем подстрокам, соответствующим EReg this.
Если совпадение найдено в начале s, в результате будет добавлен ведущий пустой элемент "".
Если совпадение найдено в конце s, в результате будет добавлен завершающий пустой элемент "".
Если две совпадающие подстроки следуют друг за другом, в результате будет присутствовать пустая строка "" между ними.
По умолчанию этот метод разделяет s на две части по первой совпавшей подстроке. Если установлен модификатор g, s разделяется по каждой совпавшей подстроке.
Если s равно null, результат не определён.
© 2005–2020 Haxe Foundation
Licensed under a MIT license.
https://api.haxe.org/EReg.html