Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Cтpoки 
RegExpr - RE_Search

RE_Search
Краткое описание
Компонент предназначен для поиска вхождения подстрок по выражению
Параметры
  • Expression - Регулярное выражение по-умолчанию. Примеры выражений смотрите в справке.
  • SourceStr - Строка по-умолчанию, в которой надо искать.
  • ModifierI - Определяет нечувствительность к регистру букв в SourceStr
  • ModifierR - Включить русские диапазоны
  • ModifierS - Любой символ ('.') включает в себя разделитель строк
  • ModifierG - Работа в "жадном" режиме (см. примеры)
  • ModifierM - Воспринимать входной текст как многострочный
  • ModifierX - Включить расширенный синтаксис
  • Методы
  • doExec - Поиск первого вхождения выражения
  • doExecNext - Поиск следующего вхождения выражения
  • События
  • onMatch - Событие происходит при нахождении вхождения выражения и выдает в его в потокARG(Match,MatchPos,MatchLen)
  • onNotFound - Событие происходит при ненахождении вхождений выражения
  • onError - Событие происходит при возникновении ошибки и выдает ее код в поток
  • Свойства
  • Match - Содержит вхождение
  • MatchPos - Позиция вхождения регулярного выражения
  • MatchLen - Длина найденного вхождения
  • Данные
  • SourceStr - Строка, в которой надо искать
  • Expression - Выражение
  • Примеры
    Пример поиска телефонных номеров:
    
    Add(MainForm,2953706,21,105)
    {
    Width=402
    Height=138
    Caption="RegExpr"
    Position=1
    }
    Add(RE_Search,7439446,245,217)
    {
    ModifierR=1
    link(onMatch,1604199:doString,[])
    link(onNotFound,13300525:doMessage,[(285,230)(285,272)])
    link(SourceStr,7306659:Text,[(251,209)(216,209)])
    link(Expression,6517404:Text,[])
    }
    Add(Button,211523,182,217)
    {
    Top=71
    Width=394
    Align=4
    Caption="Find"
    link(onClick,7439446:doExec,[])
    }
    Add(Button,10146757,182,253)
    {
    Top=91
    Width=394
    Align=4
    Caption="FindNext"
    link(onClick,7439446:doExecNext,[(230,259)(230,230)])
    }
    Add(Memo,7306659,210,155)
    {
    Width=239
    Height=71
    Align=5
    Strings=#8:24-15-64|6:553645|15:8-909-230-53-56|11:89001235762|
    ScrollBars=3
    }
    Add(Memo,6517404,252,155)
    {
    Left=239
    Width=155
    Height=71
    Align=3
    Strings=#18:\b([\d]{2}-?){3}\b|
    ScrollBars=3
    }
    Add(Message,1976391,343,217)
    {
    }
    Add(FormatStr,1604199,294,217)
    {
    DataCount=3
    Mask="Match:\t%1\r\nPos:\t%2\r\nLen:\t%3"
    link(onFString,1976391:doMessage,[])
    link(Str1,7439446:Match,[(300,205)(276,205)(276,261)(251,261)])
    link(Str2,7439446:MatchPos,[(307,205)(283,205)(283,261)(258,261)])
    link(Str3,7439446:MatchLen,[(314,205)(290,205)(290,261)(265,261)])
    }
    Add(Message,13300525,294,266)
    {
    Message="Not founded!"
    }

    Пример поиска HTML-тегов:
    
    Add(MainForm,2953706,21,105)
    {
    Width=453
    Height=283
    Caption="RegExpr"
    Position=1
    }
    Add(RE_Search,7439446,245,217)
    {
    ModifierR=1
    link(onMatch,1604199:doString,[])
    link(onNotFound,13300525:doMessage,[(285,230)(285,272)])
    link(SourceStr,7306659:Text,[(251,209)(216,209)])
    link(Expression,6517404:Text,[])
    }
    Add(Button,211523,182,217)
    {
    Top=216
    Width=445
    Align=4
    Caption="Find"
    link(onClick,7439446:doExec,[])
    }
    Add(Button,10146757,182,253)
    {
    Top=236
    Width=445
    Align=4
    Caption="FindNext"
    link(onClick,7439446:doExecNext,[(230,259)(230,230)])
    }
    Add(Memo,7306659,210,155)
    {
    Width=290
    Height=216
    Align=5
    Strings=#47:<b>HiAsm</b> - программирование для <i>всех</i>|
    ScrollBars=3
    }
    Add(Memo,6517404,252,155)
    {
    Left=290
    Width=155
    Height=216
    Align=3
    Strings=#5:<.*?>|
    ScrollBars=3
    }
    Add(Message,1976391,343,217)
    {
    }
    Add(FormatStr,1604199,294,217)
    {
    DataCount=3
    Mask="Match:\t%1\r\nPos:\t%2\r\nLen:\t%3"
    link(onFString,1976391:doMessage,[])
    link(Str1,7439446:Match,[(300,205)(276,205)(276,261)(251,261)])
    link(Str2,7439446:MatchPos,[(307,205)(283,205)(283,261)(258,261)])
    link(Str3,7439446:MatchLen,[(314,205)(290,205)(290,261)(265,261)])
    }
    Add(Message,13300525,294,266)
    {
    Message="Not founded!"
    }
    Замечания
    Обновление элемента: [svn]RegExpr.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...