Обсуждение:regex - регулярные выражения

5 (1)
  • Развернуть Обсуждение:regex - регулярные выражения ( Обсуждение примера  02.04.2008 22:41 )
    3(2)
    поиск в строке с использованием регулярных выражений на основе библиотеки
    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. В общем, если у вас вдруг
    "ч" не буква, то курить локаль.

    Посмотреть пример
    >> Ответить