Regmatch()
regmatch(<string>, <pattern>)
regmatch(<string>, <pattern>, <register>)
This function performs regular expression matching with
<pattern> on
<string>, returning 1 if there is a match or 0 if no match exists. The
<pattern> may contain wildcards
* and
?, but it must not begin with any
boolean characters. The
<pattern> is not case-sensitive.
This function has the side-effect of modifying the environment variables
%0
through
%9 with the text substituted by each wildcard in
<pattern>. That is,
the text matching the first
* or
? becomes
%0, the second becomes
%1, and
so on up through
%9. Wildcards beyond
%9 are not recorded but still determine
whether a successful match takes place.
An optional
<register> number from 0 to 9 can be specified. This determines
the first environment variable to which the parser will begin recording
matches.
If only the side-effect of the function is wanted, you can use
[mid(x,0,0)]
or
[left(x,0)] to nullify the result.
Examples:
Command |
Displays |
| say Match=[regmatch(Does not match,*k*)], env0=%0, env1=%1 |
You say, "Match=0, env0=, env1=" |
| say Match=[regmatch(@set me=Dark,@set =)], env0=%0, env1=%1 |
You say, "Match=1, env0=me, env1=Dark" |
| say [left(regmatch(abc def,* *,2),0)]env0=%0, env1=%1, env2=%2, env3=%3 |
You say, "env0=, env1=, env2=abc, env3=def" |
Errors:
-
#-1 Invalid global register. - The <register> was not in the range 0 to 9.
See also: match(),
setq(),
setr()
From the TinyMARE Help command - Courtesy Gandalf
--
SluggyQBFreak - 03 Nov 2006