- Справка Scilab
- Строки
- ascii
- asciimat
- blanks
- char
- convstr
- emptystr
- eval
- evstr
- grep
- isalphanum
- isascii
- isdigit
- isletter
- isnum
- justify
- length
- part
- regexp
- sci2exp
- strcat
- strchr
- strcmp
- strcmpi
- strcspn
- strindex
- string
- strings
- stripblanks
- strncpy
- strrchr
- strrev
- strsplit
- strspn
- strstr
- strsubst
- strtod
- strtok
- tokenpos
- tokens
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 — поиск положения символьной строки в другой строке
История
Version | Description |
5.4.0 | Добавлен новый выходной аргумент, foundString, для получения соответствий элементам шаблона. |
Comments
Add a comment:
Please login to comment this page.