Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語
Справка Scilab >> Строки > regexp

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 — поиск положения символьной строки в другой строке

История

VersionDescription
5.4.0 Добавлен новый выходной аргумент, foundString, для получения соответствий элементам шаблона.
Scilab Enterprises
Copyright (c) 2011-2015 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jun 15 08:48:32 CEST 2016