regexp
in a string, locate (and extract) substrings matching a regular expression
Syntax
[start, final, match, foundString] = regexp(input, pattern) [start, final, match, foundString] = regexp(input, pattern, "once")
Arguments
- input
a string.
- pattern
a character string (under the rules of regular expression).
- start
the starting index of each substring of
input
that matches the regular expression stringpattern
.- final
the ending index of each substring of
input
that matches the regular expression stringpattern
.- match
the text of each substring of
input
that matchespattern
.- foundString
the captured parenthesized
subpatterns
.- "once | "o" flag
'o'
for matching the pattern only once.
Description
The rules of regular expression are similar to Perl language. For a quick start, see http://perldoc.perl.org/perlrequick.html. For a more in-depth tutorial on, see http://perldoc.perl.org/perlretut.html and for the reference page, see http://perldoc.perl.org/perlre.html
A difference with Perl is that matching a position but no character
(for example, with /^/
or
/(?=o)/
) is a successful match in Perl but not
in Scilab.
Examples
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) // get host name from URL myURL="https://www.scilab.org/download/"; [a,b,c,d]=regexp(myURL,'@^(?:http://)?([^/]+)@i') str='foobar: 2012'; // Using named subpatterns [a,b,c,d]=regexp(str,'/(?P<name>\w+): (?P<digit>\d+)/') d(1)=="foobar" d(2)=="2012"
See also
- strindex — search position of a character string in another string
History
Version | Description |
5.4.0 | A new output argument, foundString, has been added to retrieve subpatterns matches. |
Report an issue | ||
<< prettyprint | Strings | sci2exp >> |