regex - регулярные выражения
Скачать (zip-файл; Размер - 262772)Обсудить в форуме
Описание
поиск в строке с использованием регулярных выражений на основе библиотеки
boost.
версия 0.4.1 (05.12.2015 20:52)
r=boostre_match(strRE, strStr, strErr, aMatch);
strRE
Строка с шаблоном регулярного выражения.
strStr
Строка в которой будет производиться поиск.
strErr
Строка в которую будет возвращено сообщение об ошибке.
aMatch
Объект TArray в котором будут сохранены найденные паттерны из (...).
r
0 - не соответствует шаблону
>0 - соответствует шаблону
-1 - ошибка
r=boostre_match_2(aRE|strRE, strStr, strErr, aMatch, strMode, aExtraMatch);
В качестве первого паратера может передаваться или строка или TArray()
strRE
Строка с шаблоном регулярного выражения. При соответствии шаблона код
возврата будет равен 0.
aRE
Объект TArray() элементами которого являюттся строки с шаблоном
регулярного выражения. Индекс шаблона, которому соответствует строка
будет возвращен функцией. Шаблоны проверяются от 0 до первого
совпавшего, дальнейшая проверка не производится. В случае указания
опции "a". Поведение меняется.
strStr
Строка в которой будет производиться поиск.
strErr
Строка в которую будет возвращено сообщение об ошибке.
aMatch
Объект TArray в котором будут сохранены найденные паттерны из (...).
strMode
Строка с опциями. Строка, состоящая из символов, соответствующих
опциям проверки шаблона. Неизвестные игнорируются.
Опции:
i - Проверка без учета регистра.
x - eXtra match (Repeated Captures)
m - match, not search. Строка должна целиком соответствовать
регулярному выражению
a - all. Поиск всехвхождений. В этом случае в aRE возвращается массив
массивов. Головной массив соответствует найденным вхождениям
релярного выражения в строке. А уже элементами головного массива
являются массивы найденных групп (скобок). Если надена опция "a",
то опции "x" и "m" игнорируются
aExtraMatch
Объект TArray в котором будут возвращены повторяющиеся вхождения при
включенной опции 'x'. Каждому паттерну из aMatch будет соответствовать
массив повторяющих вхождений в aExtraMatch. Т.е. в aExtraMatch будет
столько же элементов, сколько в aMatch, но каждым элементом будет
массив, элементами которого будут уже строки.
r
=>0 - индекс элемента массива шаблонов, которому первому соотетствует
строка
-1 - не соответствует ни одному шаблону
-2 - ошибка
r=boostre_replace(sRE, sFmt, sStr, strErr);
Поиск и замена с применением регулярных выражений
sRE
Строка с регулярным выражением.
sFmt
Строка с заменой.
sStr
Строка в которой производится поиск
strErr
Строка в которую будет возвращено сообщение об ошибке.
r
Возвращаеия строка с произведёнными заменами или пустая строка при ошибках в параметрах.
Описание синтаксиса регулярных выражений
original http://www.boost.org/doc/libs/1_59_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
на русском http://www.solarix.ru/for_developers/api/regex.shtml
Русский
Библиотека использует локаль текущего юзера. RSL обычно выполняется
под сервером приложений. Он может крутиться под System или под
отдельным пользователем, но профиль этого пользователя не загружается
и настройки берутся из HKEY_USERS\.DEFAULT. В общем, если у вас вдруг
"ч" не буква, то курить локаль.
boost.
версия 0.4.1 (05.12.2015 20:52)
r=boostre_match(strRE, strStr, strErr, aMatch);
strRE
Строка с шаблоном регулярного выражения.
strStr
Строка в которой будет производиться поиск.
strErr
Строка в которую будет возвращено сообщение об ошибке.
aMatch
Объект TArray в котором будут сохранены найденные паттерны из (...).
r
0 - не соответствует шаблону
>0 - соответствует шаблону
-1 - ошибка
r=boostre_match_2(aRE|strRE, strStr, strErr, aMatch, strMode, aExtraMatch);
В качестве первого паратера может передаваться или строка или TArray()
strRE
Строка с шаблоном регулярного выражения. При соответствии шаблона код
возврата будет равен 0.
aRE
Объект TArray() элементами которого являюттся строки с шаблоном
регулярного выражения. Индекс шаблона, которому соответствует строка
будет возвращен функцией. Шаблоны проверяются от 0 до первого
совпавшего, дальнейшая проверка не производится. В случае указания
опции "a". Поведение меняется.
strStr
Строка в которой будет производиться поиск.
strErr
Строка в которую будет возвращено сообщение об ошибке.
aMatch
Объект TArray в котором будут сохранены найденные паттерны из (...).
strMode
Строка с опциями. Строка, состоящая из символов, соответствующих
опциям проверки шаблона. Неизвестные игнорируются.
Опции:
i - Проверка без учета регистра.
x - eXtra match (Repeated Captures)
m - match, not search. Строка должна целиком соответствовать
регулярному выражению
a - all. Поиск всехвхождений. В этом случае в aRE возвращается массив
массивов. Головной массив соответствует найденным вхождениям
релярного выражения в строке. А уже элементами головного массива
являются массивы найденных групп (скобок). Если надена опция "a",
то опции "x" и "m" игнорируются
aExtraMatch
Объект TArray в котором будут возвращены повторяющиеся вхождения при
включенной опции 'x'. Каждому паттерну из aMatch будет соответствовать
массив повторяющих вхождений в aExtraMatch. Т.е. в aExtraMatch будет
столько же элементов, сколько в aMatch, но каждым элементом будет
массив, элементами которого будут уже строки.
r
=>0 - индекс элемента массива шаблонов, которому первому соотетствует
строка
-1 - не соответствует ни одному шаблону
-2 - ошибка
r=boostre_replace(sRE, sFmt, sStr, strErr);
Поиск и замена с применением регулярных выражений
sRE
Строка с регулярным выражением.
sFmt
Строка с заменой.
sStr
Строка в которой производится поиск
strErr
Строка в которую будет возвращено сообщение об ошибке.
r
Возвращаеия строка с произведёнными заменами или пустая строка при ошибках в параметрах.
Описание синтаксиса регулярных выражений
original http://www.boost.org/doc/libs/1_59_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
на русском http://www.solarix.ru/for_developers/api/regex.shtml
Русский
Библиотека использует локаль текущего юзера. RSL обычно выполняется
под сервером приложений. Он может крутиться под System или под
отдельным пользователем, но профиль этого пользователя не загружается
и настройки берутся из HKEY_USERS\.DEFAULT. В общем, если у вас вдруг
"ч" не буква, то курить локаль.
Текст примера
import "boostre.d32"; var strRE="(\\u\\l+)\\s+(\\u\\l+)\\s+(\\u\\l+)"; var strStr="Пупкин Денис Давыдович"; var r; var strErr=""; var aMatch=TArray(); macro DumpMatch() var i=0; while (i<aMatch.Size()) [# #](i, aMatch[i]); i=i+1; end; end; /* macro DumpMatch */ while (GetString(strRE,"regexp")) /**/ r=null; while (GetString(strStr,strStr + " on "+strRE +": "+String(r))) r=boostre_match(strRE, strStr, strErr, aMatch); println("regex="+ strRE +", str="+ strStr + ", result=" + String(r) + ": " + strErr); DumpMatch(); message(String(r)); end; /**/ end;