Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - Русский

Change language to:
English - Français - 日本語 - Português -

Please note that the recommended version of Scilab is 2025.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 — поиск положения символьной строки в другой строке

История

VersionDescription
5.4.0 Добавлен новый выходной аргумент, foundString, для получения соответствий элементам шаблона.
Report an issue
<< prettyprint Строки sci2exp >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:58 CET 2020