Difference between revisions of "ReplaceRE"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
 
m (1 revision imported)
 
(No difference)

Latest revision as of 15:55, 30 December 2023

  ReplaceRE (Функции для работы с регулярными выражениями)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, синтаксическая ошибка в шаблоне
Визуальность:Нет

Производит проверку шаблона регулярных выражений, заданного вторым аргументом в тексте, заданном первым аргументом. Возвращает текст, с заменой найденных в нем значений на текст или шаблон, заданный третьим аргументом.

Синтаксис

ReplaceRE(<Строка, в которой происходит поиск (STRING)>,<Выражение (STRING)>,<Шаблон для замены (STRING)>,<Позиция начала поиска (INT)>=0,<Максимальное количество замен (INT)>=0,<Флаги поиска (INT)>=0):<Текст результата (STRING)>

Аргументы

  • <Строка, в которой происходит поиск (STRING)> - Текст поиска.
  • <Выражение (STRING)> - Шаблон регулярного выражения для поиска в тексте.
  • <Шаблон для замены (STRING)> - Строка, которой будут заменяться найденные в тексте значения. Кроме текста для замены, аргумент может содержать специальные выражения, начинающиеся на символ $. Список таких выражений дан ниже:
    • $$ -- при замене подставляется одиночный символ $.
    • $& -- при замене подставляется само найденное выражение в тексте поиска значение.
    • $` -- при замене подставляется часть исходного текста поиска с начала текста до позиции найденного значения.
    • $' -- при замене подставляется часть исходного текста поиска с символа, следующего непосредственно за найденным значением до конца текста.
    • $N -- при замене подставляется значение группы поиска с номером N. Нумерация групп начинается с 1 и задается в последовательности левых открывающихся скобок (это имеет значение только для вложенных групп). Если группа не участвовала в сравнении из-за предыдущего условия, либо создавала квантификацию с количеством ноль, будет подставлена пустая строка.
    • $<Group> -- при замене подставляется значение группы поиска с наименованием Group. Если группа не участвовала в сравнении из-за предыдущего условия, либо создавала квантификацию с количеством ноль, будет подставлена пустая строка.
  • <Позиция начала поиска (INT)> - (необязательный аргумент) Позиция начала поиска (по умолчанию -- с начала текста).
  • <Максимальное количество замен (INT)> - (необязательный аргумент) Аргумент задает максимальное количество производимых замен, после чего система не будет продолжать поиск и исходный текст с момента последней замены не будет изменен. По умолчанию 0 (без ограничений).
  • <Флаги поиска (INT)> - (необязательный аргумент) Число - битовая маска режимов поиска по умолчанию. Имеет следующие биты:
    • бит 0: Использовать регистро-независимый поиск (1), по умолчанию поиск будет регистро-зависимым. Важно: данный режим изменяет только сравнение обычного текста, сравнение наборов символов ([...]) изменено не будет.
    • бит 1: Не использовать конструкции проверки позиции $ и ^, для нахождения начала и конца строки внутри текста, а только для нахождения начала и конца всего текста. По-умолчанию режим отключен.

Возвращаемое значение

Функция возвращает строку, результат замены.

Примеры

Стр:="The pink cockatoo is a medium-sized cockatoo that inhabits arid and semi-arid inland areas across Australia.";

//Окружает слова the и that, вне зависимости от регистра, круглыми скобками.
Message(ReplaceRE(Стр,"(?<grp>the|that)","($<grp>)",,0,1));

//Будет выведено:
//(The) pink cockatoo is a medium-sized cockatoo (that) inhabits arid and semi-arid inland areas across Australia.