# regexp

поиск подстроки, соответствующей строке регулярного выражения

## Последовательность вызова

                [start] = regexp(input, pattern, [flag])
                [start, end] = regexp(input, pattern, [flag])
                [start, end, match] = regexp(input, pattern, [flag])
                [start, end, match, foundString] = regexp(input, pattern, [flag])

## Аргументы

input

  символьная строка.

pattern

  символьная строка, шаблон (по правилам регулярных выражений).

start

  начальный индекс каждой подстроки `input`, которая соответствует строке регулярного выражения `pattern`.

end

  конечный индекс каждой подстроки `input`, которая соответствует строке регулярного выражения `pattern`.

match

  текст каждой подстроки `input`, которая соответствует шаблону `pattern`.

foundString

  текст, выделенный элементами шаблона, заключёнными в скобки.

[flag]

  `'o'` для одного соответствия шаблону.

## Описание

Правила регулярного выражения схожи с языком Perl. Для быстрого старта смотрите http://perldoc.perl.org/perlrequick.html. Для более глубокого изучения смотрите http://perldoc.perl.org/perlretut.html, а для справки смотрите http://perldoc.perl.org/perlre.html.

Отличие от Perl заключается в том, что соответствие позиции, а не символа (например, с `/^/` или `/(?=o)/`) будет успешным в Perl, но не в Scilab'е.

## Примеры

    regexp('xabyabbbz','/ab*/','o')
    regexp('a!','/((((((((((a))))))))))\041/')
    regexp('ABCC','/^abc$/i')
    regexp('ABC','/ab|cd/i')
    [a b c]=regexp('XABYABBBZ','/ab*/i')

    piString="3.14"
    [a,b,c,piStringSplit]=regexp(piString,"/(\d+)\.(\d+)/")
    disp(piStringSplit(1))
    disp(piStringSplit(2))

    [a,b,c,d]=regexp('xabyabbbz','/ab(.*)b(.*)/')
    size(d)

    // получение имени сервера из URL
    myURL="http://www.scilab.org/download/";
    [a,b,c,d]=regexp(myURL,'@^(?:http://)?([^/]+)@i')

    str='foobar: 2012';
    // использование именованных элементов шаблона
    [a,b,c,d]=regexp(str,'/(?P<name>\w+): (?P<digit>\d+)/')
    d(1)=="foobar"
    d(2)=="2012"

## Смотрите также

- strindex

## История

5.4.0
Добавлен новый выходной аргумент, foundString, для получения соответствий элементам шаблона.