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 - 日本語

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

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

История

ВерсияОписание
5.4.0 Добавлен новый выходной аргумент, foundString, для получения соответствий элементам шаблона.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 14:01:08 CEST 2014